doc 表示类的描述信息
module 表示当前操作的对象在那个模块(main)
class 表示当前操作的对象的类是什么
new 创建对象时为对象分配空间,在初始化方法__init__之前被调用
init 初始化方法,通过类创建对象时,自动触发执行,一般用来定义实例属性
del 当对象在内存中被释放时,自动触发执行
call 对象后面加括号,触发执行,例如对象()或者类名()()
dict 类或对象中的所有属性
str 在打印对象时,默认输出该方法的返回值(字符串)
#__doc__
#表示类的描述信息
class Foo:
def func(self):
pass
#类的描述信息
print(Foo.__doc__)
-----------------------------------
#__module__
#__class__
class Person():
def __init__(self):
self.name = "laowang"
obj = Person()
#输出模块
print(obj.__module__)
#输出类
print(obj.__class__)
----------------------------------------
#__init__
#初始化方法,通过类创建对象,自动触发执行
class Person():
def __init__(self, name):
self.name = name
self.age = 18
#自动执行类中的__init__方法
obj = Person("laowang")
print(obj.name)
-------------------------------------
#__del__
#当对象在内存中被释放时,自动触发执行
class Foo:
def __del__(self):
pass
#此方法一般无需定义
---------------------------------------
#__call__
#对象后面加括号,触发执行
class Foo:
def __init__(self):
pass
def __call__(self, *args, **kwargs):
print("__call__")
obj = Foo()
obj()
-------------------------------------
#__dict__
#类或对象中的所有属性
#类的实例属性属于对象,类中的类属性和方法等属于类
class Province():
country = "China"
def __init__(self, name, count):
self.name = name
self.count = count
def func(self, *args, **kwargs):
print("func")
#获取类的属性,即; 类属性,方法
print(Province.__dict__)
#结果:{'__module__': '__main__', 'country': 'China', '__init__': <function Province.__init__ at 0x00ED93D8>, 'func': <function Province.func at 0x0334C030>, '__dict__': <attribute '__dict__' of 'Province' objects>, '__weakref__': <attribute '__weakref__' of 'Province' objects>, '__doc__': None}
obj1 = Province("山东", 10000)
print(obj1.__dict__)
#结果:{'name': '山东', 'count': 10000}
obj2 = Province("山西", 20000)
print(obj2.__dict__)
#结果:{'name': '山西', 'count': 20000}
------------------------------------------
#__str__
#如果一个类中定义了__str__方法,那么在打印对象时,默认输出该方法的返回值
class Foo:
def __str__(self):
return "laowang"
obj = Foo()
print(obj)
#结果: laowang