当前位置: 首页> 汽车> 新车 > Python学习笔记--私有属性、构造方法、析构方法、常用内置方法

Python学习笔记--私有属性、构造方法、析构方法、常用内置方法

时间:2025/7/12 5:44:46来源:https://blog.csdn.net/qq_33782655/article/details/141190272 浏览次数: 0次

目录

私有属性

构造方法

析构方法

常用内置方法


私有属性

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("刘健")# 输出
'''
姓名为小明的对象被创建
姓名为马红的对象被创建
姓名为张刚的对象被创建
姓名为张刚的对象被销毁
姓名为马红的对象被销毁
姓名为刘健的对象被创建
姓名为小明的对象被销毁
姓名为刘健的对象被销毁
'''

注:如果多个变量对应同一片内存空间,则只有这些变量都删除后才会销毁这片内存空间中所保存的对象,也才会自动执行析构方法

1. 判断题

析构方法可以没有形参。

A.正确

B.错误

正确答案:B

解析:析构方法应有一个形参self,对应正在销毁的对象。

常用内置方法

1. __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)+'i'if __name__ == '__main__':c = Complex(3.2, 5.3)print(c)#输出
'''
3.2+5.3i
'''

2. 比较运算的内置方法

内置方法功能描述
__gt__(self, other)进行self>other运算时自动执行
__lt__(self, other)进行self<other运算时自动执行
__ge__(self, other)进行self>=other运算时自动执行
__le__(self, other)进行self<=other运算时自动执行
__eq__(self, other)进行self==other运算时自动执行
__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__方法返回的数据必然是字符串。

关键字:Python学习笔记--私有属性、构造方法、析构方法、常用内置方法

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: