标签:__ .__ name 特殊 print slots class 属性
目录__doc__
类名.__doc__
时触发执行,查看类的注释信息,注释信息无法继承。
class Person:
"""
该类注释信息
"""
print(Person.__doc__)
该类注释信息
直接写注释信息相当于定义了个__doc__ = """该类的注释信息"""
,所以可以不用写pass,语法也是正确的。
__name__
类名.__name__
时触发执行,返回类名。
class A:
pass
a = A()
print(type(a).__name__)
A
__module__
对象.__module__
时触发执行,返回对象所在的模块名。
class A:
pass
a = A()
print(A.__module__)
__main__ # 表示当前文件
__class__
仅新式类中,对象.__class__
时触发执行,返回对象所属的类。与type()所得到的结果相同。
class A:
pass
a = A()
print(A.__class__)
print(a.__class__)
print(type(a))
<class 'type'>
<class '__main__.A'>
<class '__main__.A'>
__slots__
slots是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性)。
使用点来访问属性本质就是在访问类或者对象的dict属性字典(类的字典是共享的,而每个实例的是独立的)。
class People:
__slots__ = ['name','age']
def __init__(self,name,age):
self.name = name
self.age = age
p = People('libai',18,)
# p.sex = 'male' 对象不能再定义独自的属性
# print(p.__dict__) 使用了slots,对象就没有__dict__
print(p.__slots__) # 可以查看类的__slots__属性.
__slots__
的作用:
- 1、限制对象的属性。
- 2、当实例很多,但属性很少,使用slots能节省内存。
类每生成一个对象,对象有自己的dict,如果对象自身有很多属性,(对象越多)这样占用的内存空间就很多,使用了slots后,所有的对象,都使用类名称空间中的属性,对象越多,越节省内存。
#python为类内置的特殊属性
类名.__name__ # 类的名字(字符串)
类名.__base__ # 类的第一个父类
类名.__bases__ # 类所有父类构成的元组,仅查看直接父类。
类名.__dict__ # 类的属性字典
参考文档:
https://docs.python.org/zh-cn/3/reference/datamodel.html?highlight=eq#object.eq
标签:__,.__,name,特殊,print,slots,class,属性 来源: https://www.cnblogs.com/ChiRou/p/14238104.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。