码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-01-28 18:19:18      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:obj   操作   对象   author   inf   格式   john   信息   image   

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

 运行结果

技术分享图片

 

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

标签:obj   操作   对象   author   inf   格式   john   信息   image   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!