Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。接下来,记录一下类的比较特殊的对象属性:
__doc__
类的描述信息
class Person(object):
'''
一个Person类,用来玩的
'''
pass
p = Person()
print(p.__doc__) # 打印结果:一个Person类,用来玩的
__module__
获取当前操作的对象所在的模块
from library.student import Record
r = Record()
print(r.__module__) # 打印结果:library.student
__class__
获取当前操作的对象的类
from library.student import Record
r = Record()
print(r.__class__) # 打印结果:library.student.Record
__init__
构造方法,创建对象时自动调用
__del__
析构方法,当对象被内存回收时,自动触发执行
__call__
对象加括号后执行
class Person(object):
def __call__(self):
print("__call__执行了")
p = Person()
p() # 结果:__call__执行了
__dict__
获取类或对象的所有方法和属性
class Person(object):
name = "person"
def __init__(self):
self.__food = "苹果"
def eat(self):
pass
print(Person.__dict__) # 打印结果:{'__module__': '__main__', 'name': 'person', '__init__':....
p = Person()
print(p.__dict__) # 打印结果:{'_Person__food': '苹果'}
__str__
获取对象的地址,重写str可改变获取对象的信息
class Person(object):
def __str__(self):
return "Person类"
p = Person()
print(p) # 打印结果:Person类。若无重写,默认打印的是Person类的内存地址
__getitem__、__setitem__、__delitem__
获取数据,设置数据,删除数据
class Person(object):
def __getitem__(self,key):
print("__getitem__",key)
def __setitem__(self,key,value):
print("__setitem__",key,value)
def __delitem__(self,key):
print("__delitem__",key)
p = Person()
p["name"] = "python" # 设置数据,将自动调用__setitem__方法
p["name"] # 获取数据,将自动调用__getitem__方法
del p["name"] # 删除数据,将自动调用__delitem__方法