__doc__
用来表示类的描述信息
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
if __name__ == '__main__':
p = Person('John',22)
print(p.__doc__)
运行结果
__class__
用来表示当前对象的类
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
if __name__ == '__main__':
p = Person('John',22)
print(p.__class__)
运行结果
当前程序的 Person 类
__module__
用来表示当前操作对象所在的模块
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
if __name__ == '__main__':
p = Person('John',22)
print(p.__module__)
运行结果
__call__
实例化的对象后加上括号, 来执行该方法
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
def __call__(self, *args, **kwargs):
print("Test For Class")
if __name__ == '__main__':
p = Person('John',22)
p()
运行结果
如果没有定义该方法, 直接调用实例化的对象就会报错
__str__
打印对象时, 将会打印该方法的返回值
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
if __name__ == '__main__':
p = Person('John',22)
print(p)
运行
如果没有定义__str__方法, 直接打印对象的话, 就会返回该对象的内存地址
如果有定义__str__方法的话
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
def __str__(self):
return "The Person Class"
if __name__ == '__main__':
p = Person('John',22)
print(p)
运行
打印的不是对象的内存地址, 而是__str__方法的返回值
__dict__
用来查看类或对象中所有的成员, 以字典的格式来表示
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"
class Person(object):
'''这个类是用来描述人的'''
def __init__(self,name,age):
self.name = name
self.age =age
def __str__(self):
return "The Person Class"
if __name__ == '__main__':
p = Person('John',22)
print(Person.__dict__)
print(p.__dict__)
运行结果
来源: http://www.bubuko.com/infodetail-2478421.html