''' 面向过程 变量、函数都是杂乱无章的,不便于管理和维护 ''' #请同学将自己名字、性别、年龄上传给老师 #面向过程,方法各式各样,不好管理 #小明 stu1 = '我叫小明,今年23岁,性别男' #小红 stu2 = {'姓名':'小红','性别':'女','年龄':'22'} #字典的形式 #张三 stu3 = ['张三','男','25'] #列表 #面向对象,便于管理和维护 ''' 创建方法:class 类名: 功能或者叫代码内容 ''' #1,在程序中设计一个表格,我们称之为类(class),和创建函数使用def关键字是一样的 class Student: name = None #相当建一个空值 gender = None #性别:空值 age = None #在程序中打印表格,我们称之为创建对象 #基于类创建对象 对象名=类名() stu_1 = Student() stu_2 = Student() stu_3 = Student() #在程序中填写 表格我们称之为:对象属性赋值 对象名.表格的内容 之一 stu_1.name = '小明' stu_1.gender = '男' stu_1.age = '23' stu_2.name = '小红' stu_2.gender = '女' stu_2.age = '22' stu_3.name = '张三' stu_3.gender = '男' stu_3.age = '25' #4。获取对象中记录的信息 #假设需要获取stu_1中的name 属性 print(stu_1.name) #再获取这个对象中的对象gender 和 age print(stu_2.gender) ''' 类的创建方法 class 类名: 类的属性 类的行为 class 是关键字,使用它时表示 ,要开始定义类了 类的属性-> 定义在类中的变量(成员变量) 类的行为->定义在类中的函数可以称为成员方法 ''' # 创建类的对象的语法:创建对象相当于使用这个类, # 对象名 = 类名() #类中定义成员方法和定义函数基本一致,但是有细微区别 # def 方法名 (self ,形参1,....,形参N) #self 关键字:成员方法定义时已经要存在的(通常写方法会自己补全)表示类对象自身的意思 # 类中的行为创建 # 定义一个类 class student: name = None def success(self): print(f'{self.name}同学已成功在老师这里报名 ') def say_hi(self): print('同学们好老师好') def say_hi2(self): print(f'大家好我是{self.name}') #创建一个对象 stuA = student() #给对象中的属性赋值 stuA.name = '孜然' #对象调用类中的行为,对象名.函数名() stuA.success() stuA.say_hi() stuB = student() stuB.name = '周杰伦' stuB.say_hi2() str1 = 10 print(f'今天我捡到了{str1}元') ''' python 中可以使用:__init__() 方法:称为构造方法 可以实现 : 在创建类对象的时候会自动执行 在创建类对象的时候,将传入的参数自动提交给__init__方法使用 ''' ''' 类的构造 方法 def __init__(): 写入成员属性变量 ''' #使用构造方法对成员变量进行赋值 class Student: def __init__(self, name, age, tel): #使用构造方法无需 self.name = name self.age = age self.tel = tel stuC = Student('李华', 31, '19255667788') print(stuC.name) print(stuC.tel) print('=========================================================') ''' 析构函数 使用__del__ 析构函数 当你使用del 关键字删除对象时,就会自动调用 这个方法里面的内容 ''' class student: def __init__(self, name, age, tel): # 使用构造方法无需 self.name = name self.age = age self.tel = tel #定义析构函数 def __del__(self): #创建这个析构函数时,当你删时就会自动调用里面的内容 print(f'对象{self.name}同学已经被删除') stu1 = student('李结', 12, '1595858575') del stu1 #使用del关键字删除此对象 print('==================================================') ''' 面向对象编程:是许多编程语言(python java c )都支持的一种编程思想 简单的理解是:基于模板(类)去创建实体(对象)使用对象来完成功能开发(今天的作业内容) 面向对象包函三大特性 1,封装 2,继承 3,多态 ''' #封装 ''' 封装表示的是将现实事务的:属性、行为封装到类中,然后描述为:成员变量、成员方法(函数) 从而完成程序对现实世界中的描述 ''' ''' 例如大家使用的手机 对我们开放的属性和行为: 我们知道的公开的属性:如品牌,型号,长宽高,配置 行为:如上网、连接网络、拍照 对我们隐藏的属性和行为 属性:系统具体的编码,手机运行的电压 行为:内存管理,程度调度 既然现实事务有不公开的属性和行为,那么作为现实事物中在程序里映射的类也应该支持 ''' ''' 私有成员 类中提供了私有成员的支持 私有成员变量 私有成员方法 私有属性定义方法 私有成员变量(属性)变量名前以双下划线开头__ 私有成员方法(行为)函数名前以双下划线开头__ ''' #创建一个手机类 class Phone: #创建公有属性 brand = None #品牌 size = None #尺寸 #创建私有属性 __voltage = 0.5 #手机电压 def __set_single_core(self): #程序调试方法 (私有成员) print('cpu已经更改为单核运行模式') #创造一个对象来进行测试 phone = Phone() #根据上面的类创建一个手机对象 #对象使用私有方法会报错 #对象使用私有属性同样会报错 # phone.__voltage = 1.5 #修改电压 (此处虽然能够打印出来)但是实际没有修改 # print(phone.__voltage) #私有属性或行为无法被类对象使用,但是可以被其它的方法使用 #定义一个公有的方法来打开手机的5G功能 def use_5G(self): if self.__voltage >= 1: print('5G功能已经开启') else: self.__set_single_core() #创建一个新的手机 phone = Phone() phone.use_5G
python 11课 类的创建和
最新推荐文章于 2024-07-18 15:53:23 发布