想要一个免费的网站,怎样提升网站关键词,php网站转移,门户网站内容维护流程目录
私有属性
构造方法
析构方法
常用内置方法 私有属性
1. 私有属性是指在类内可以直接访问、而在类外无法直接访问的属性
2. Python中规定#xff0c;在定义类时#xff0c;如果一个类属性名是以__#xff08;两个下划线#xff09;开头#xff0c;则该类属性为私…目录
私有属性
构造方法
析构方法
常用内置方法 私有属性
1. 私有属性是指在类内可以直接访问、而在类外无法直接访问的属性
2. Python中规定在定义类时如果一个类属性名是以__两个下划线开头则该类属性为私有属性
举例
class Student:name 未知__id 未知def SetInfo(self, newname, newid):self.name newnameself.__id newiddef PrintInfo(self):print(姓名%s, 身份证号%s%(self.name, self.__id))if __name__ __main__:stu Student()stu.SetInfo(小明, 25256326)stu.PrintInfo()# 错误写法print(身份证号%s % (stu.__id))# 正确写法print(身份证号%s % (stu._Student__id))
注实际上Python中并不存在无法访问的私有属性。如果在类中定义了一个私有属性则在类外访问该私有属性时需要在私有属性名前加上“_类名”即可正常运行。
print(身份证号%s % (stu._Student__id))
构造方法
1. 构造方法是Python类中的内置方法之一它的方法名为__init__在创建一个类对象时会自动执行负责完成新创建对象的初始化工作。
只有一个参数的构造方法示例
class Student:def __init__(self):print(构造方法被调用)self.name 未知def PrintInfo(self):print(姓名 %s%self.name)if __name__ __main__:stu Student() # 创建Student类对象stu自动执行构造方法stu.PrintInfo()# 输出构造方法被调用
姓名 未知带默认参数的构造方法示例
class Student1:def __init__(self, name 未知): #定义构造方法print(构造方法被调用)self.name name #将self对应对象的name属性赋为形参name的值def PrintInfo(self):print(姓名%s%self.name)if __name__ __main__:stu1 Student1()stu2 Student1(小明)stu1.PrintInfo()stu2.PrintInfo()# 输出构造方法被调用
构造方法被调用
姓名未知
姓名小明析构方法
1. 析构方法是类的另一个内置方法它的方法名为__del__在销毁一个类对象时会自动执行负责完成待销毁对象的资源清理工作如关闭文件等。
注类对象销毁有如下三种情况
1局部变量的作用域结束
2使用del删除对象
3程序结束时程序中的所有对象都将被销毁
class Student:def __init__(self, name):self.name nameprint(姓名为%s的对象被创建%self.name)def __del__(self):print(姓名为%s的对象被销毁%self.name)def func(name):stu Student(name)if __name__ __main__:stu1 Student(小明)stu2 Student(马红)stu3 stu2del stu2func(张刚)del stu3stu4 Student(刘健)# 输出姓名为小明的对象被创建
姓名为马红的对象被创建
姓名为张刚的对象被创建
姓名为张刚的对象被销毁
姓名为马红的对象被销毁
姓名为刘健的对象被创建
姓名为小明的对象被销毁
姓名为刘健的对象被销毁注如果多个变量对应同一片内存空间则只有这些变量都删除后才会销毁这片内存空间中所保存的对象也才会自动执行析构方法
. 判断题
析构方法可以没有形参。
A.正确
B.错误
正确答案B
解析析构方法应有一个形参self对应正在销毁的对象。
常用内置方法
. __str__
调用str函数对类对象进行处理时或者调用Python内置函数format()和print()时自动执行__str__方法的返回值必须是字符串
class Complex:def __init__(self, real, image):self.real realself.image imagedef __str__(self):return str(self.real)str(self.image)iif __name__ __main__:c Complex(3.2, 5.3)print(c)#输出3.25.3i2. 比较运算的内置方法
内置方法功能描述__gt__(self, other)进行selfother运算时自动执行__lt__(self, other)进行selfother运算时自动执行__ge__(self, other)进行selfother运算时自动执行__le__(self, other)进行selfother运算时自动执行__eq__(self, other)进行selfother运算时自动执行__ne__(self, other)进行self!other运算时自动执行
示例
class Student:def __init__(self, name, age):self.name nameself.age agedef __le__(self, other):return self.age other.ageif __name__ __main__:stu1 Student(小明, 19)stu2 Student(小红, 20)print(马红的年龄小于等于小明的年龄, stu2 stu1)# 输出False判断题
1. __str__方法的返回值可以是整数。
A.正确
B.错误
正确答案B
解析__str__方法返回的数据必然是字符串。