当前位置:首页 > Python教程 > python技巧

Python类(七)-类的特殊成员方法

  • __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__)

 运行结果

技术分享图片

 

原文:https://www.cnblogs.com/sch01ar/p/8371696.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐