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

时间: 2024-10-31 03:37:44

Python类(七)-类的特殊成员方法的相关文章

python第三十六天-----类中的特殊成员方法

__doc__ 查看尖的描述信息 __module__表示当前操作的对象所在的模块 __class__表示当前操作的对象所属的类 __init__构造方法 通过类创建对象自动执行 __del__析构方法,当前对象在内存中被释放自动斩妖执行 __call__对象后面加括号触发执行 __dict__查看类或对象中的成员 __str__如果一个类中定义了此方法,那么打印此类对象时,输出此方法的返回值 __getitem__当类中定义了一个字典的属性成员,可以获取 __setitem__设置修改类中字典

python学习笔记(七) 类和pygame实现打飞机游戏

python中类声明如下: class Student(object): def __init__(self, name, score): self.name = name self.score = score def printinfo(self): print('name is %s, score is %d'%(self.name, self.score)) Student类有两个成员变量,name和score,类的成员函数第一个参数都为self,用来实现成员变量的赋值,__init__是

Python 的字符串类子串查找函数

Python 的字符串类有个很好用的函数,可很方便的用于与查找Python字符串类型对象子串相关的操作,具体的API如下: | find(...) | S.find(sub [,start [,end]]) -> int | | Return the lowest index in S where substring sub is found, | such that sub is contained within s[start:end]. Optional | arguments start

python 面向对象的类

参考<learn python hard way> 网址:https://learnpythonthehardway.org/book/ex41.html class X(Y) "Make a class named X that is-a Y." 创建一个叫x的类,类x是y(类x 继承y),例如'三文鱼'是'鱼' class X(object): def __init__(self, J) "class X has-a __init__ that takes s

Python中元类

一. 前提: python中一切都是对象,要么是类的对象,要么是元类的对象,type元类是自己的对象.继承层次表示为type(元类)-->类(内置和用户自定义的) --> 类的实例. 二.  目的: 创建类时自动改变类,换句话说就是创建类这种东西的东西. 三.  __metaclass__ 可以通过指定__metaclass__来使用用户自定义的元类创建类. class语句解析顺序: class Myclass(object): pass Myclass里面的__metaclass__ --&

python: 字典,类与 &quot;switch&quot;

python中是没有switch语法的,我在练习的时候想使用类似switch的功能,搜索相关内容知道了使用字典可以完成我想要的步骤.于是,开始动手. 我使用的是python3,并且在练习使用tkinter模块写个小游戏:乒乓球.测试阶段,首先我敲入: from tkinter import * 从而加载tkinter模块,并使用 * 使得在之后的代码输入中可以稍打一些代码.在这之后,我构想在创建一个canvas类变量,并在上面画一个矩形,通过左右方向键控制矩形移动从而模拟球拍.测试的完整代码为:

Lesson 04:类和对象,类的成员变量、成员方法、构造方法

1 类(class) java是面向对象程序设计(OPP),类是构造对象的模板或者蓝图.由类构造(construst)对象的过程称为创建类的实例(instance).类的构成: 1 package 包名 2 class 类名 extends 父类名 implements 接口名{ 3 成员变量: 4 构造方法: 5 成员方法: 6 } 7 //一个简化的类的结构 成员变量 成员方法:包含返回值类型.参数列表.方法主体等要素 (1)方法的声明: 1 //方法的声明没有函数体 2 public in

python学习笔记-类的descriptor

descriptor应用背景 所谓描述器,是实现了描述符协议,即get, set, 和 delete方法的对象. 简单说,描述符就是可以重复使用的属性. 比如以下代码: f = Foo() b = f.bar f.bar = c del f.bar 在解释器执行上述代码时,当发现你试图访问属性(b = f.bar).对属性赋值(f.bar = c)或者删除一个实例变量的属性(del f.bar)时,就会去调用自定义的方法. 为什么把对函数的调用伪装成对属性的访问?有什么好处? 从property

Python中的类(下)

本文将介绍一下类的构造函数和初始化函数,以及如何通过"魔术方法"定制一个类. 类构造和初始化 在前面的文章中,经常使用初始化函数"__init__",下面看看"__init__"和"__new__"的联系和差别. 下面先通过一段代码看看这两个方法的调用顺序: class A(object): def __init__(self,*args, **kwargs): print "init %s" %self.