__doc__ # 输出类的描述信息
__module__ # 表示当前操作的对象在那个模块
__class__ # 表示当前操作的对象的类是什么
__init__ # 构造方法,通过类创建对象是,自动触发执行。
__del__ # 构造方法,当对象在内存中释放是,自动触发执行。
__call__ # 对象后面加括号,触发执行
注:构造方法的执行是由创建对象触发的,即:对象 = 类名();而对于__call__方法的执行是由对象后加括号触发的,即:对象()或者类()()
__dict__ # 查看类或对象中的所有成员
__str__ # 如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值。
__getitem__ # 用于索引操作,如字典。表示获取数据
__setitem__ # 用于索引操作,如字典。表示设置数据
__delitem__ # 用于索引操作,如字典。表示删除数据

**__new__**

创建类的两种方法:
1.普通方法
class Foo(object):
def func(self):
print('hello world!')
2.特殊方法
def func(self):
print('hello world!')
Foo = type('Foo',(object),{'func':func})
# type第一个参数:类名
# type第二个参数:当前类的基类
# type第三个参数:类的成员

**__new__**

new负责函数实例化时的内存空间开辟。早于__ini__的执行。
**metaclass**

class Foo(object,metaclass=MyType)
**__new__,__init__,__call__的使用说明**

    class Mytype(type):
def __call__(self, *args, **kwargs):
print('Mytype __call__')
obj = self.__new__(self)
self.__init__(obj, *args, **kwargs)
return obj def __new__(cls, *args, **kwargs):
print('Mytype __new__')
obj = type.__new__(cls, *args, **kwargs)
return obj
def __init__(self,*args,**kwargs):
print('Mytype __init__') class Foo(object,metaclass=Mytype):
def __init__(self,name):
print('Foo __init__')
self.name = name f = Foo('helei')
print(f.name)

说明:
首先你需要知道一下几点:
- python中一切接对象。(平时所说的对象和实例都是对象)
- __init__的作用是初始化函数属性作用是
- __new__的作用是生成对象的内存空间并返回
- __call__的作用是对象(或者可以说是实例)后面加括号,触发执行

python 类的特殊成员方法的更多相关文章

  1. Python 类的特殊成员方法详解

    class doges(object): """类的描述信息""" def __init__(self,name,food): self.n ...

  2. Python类的特殊成员方法

    __doc__ 类的描述信息. class dog: '''这是狗的类''' def __init__(self,name): self.name = name self.__age = None p ...

  3. 【Python】面向对象--类的特殊成员方法

    类的特殊成员方法 1. __doc__ 表示类的描述信息 class Func(object): '''__doc__方法是用来打印类的描述信息''' def tell(self): pass def ...

  4. Python面向对象类的特殊成员方法

    类的特殊成员方法:1.__doc__ : 打印类下面的注释 2.__module__和__class__:from lib.aa import C输出类被导出的模块名lib.aa,输出类的模块名和类名 ...

  5. python 面向对象静态方法、类方法、属性方法、类的特殊成员方法

    静态方法:只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性. 在类中方法定义前添加@staticmethod,该方法就与类中的其他(属性,方法)没有关系,不能通过实例化类调用方法使用 ...

  6. python类的高级属性

    ---恢复内容开始--- 类方法:通过@classmethod装饰器实现,类方法和普通方法的区别是,类方法只能访问类变量,不能访问实例变量,代码如下: class Person(object): de ...

  7. 【Python&数据结构】 抽象数据类型 Python类机制和异常

    这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

  8. day6面向对象--类的特殊成员方法

    类的特殊成员方法 1. __doc__ 表示类的描述信息 class Func(object): '''__doc__方法是用来打印类的描述信息''' def tell(self): pass def ...

  9. python_105_类的特殊成员方法

    aa.py class C(): def __init__(self): self.name='QiZhiguang' 类的特殊成员方法: # 1. __doc__ 表示类的描述信息 class Do ...

随机推荐

  1. Vim 游戏 2048

    给大家介绍一款可以在Vim里面玩的游戏 vim2048. 界面如图: 操作非常简单,可以用 hjkl 或者 上下左右方向键移动 项目开源地址为: https://github.com/wsdjeg/v ...

  2. UTF-8 UTF-16 UTF-32 最根本的区别?

    昨天看书的时候突然发现UTF-16 我好像还没见过这个东西  也可能忘记了 反正现在对自己科普一下吧 最根本的区别 UTF-32 把所有的字符都用32bit -- 4个字节 来表示 UTF-16 和 ...

  3. java JDK源码解析

    Hashmap 使用java语言进行系统开发时,使用得比较多得数据结构hashmap,它以[key,value],进行数据存储,通过key可以快速找到到对应的value值,但是key,value不能是 ...

  4. JAVA_SE基础——32.this关键字调用本类的构造方法

    黑马程序员入学blog... 也算是学习笔记. 下面我们来看段代码: package day07; class Student{ int id; //身份证 String name; //名字 pub ...

  5. 新概念英语(1-a)句子集锦

  6. FPGA与MATLAB数据交互高效率验证算法——仿真阶段

    之前博文是对基本设计技巧的总结和一些小设计随笔,内容有点杂,缺乏目的性.本来后续计划设计几个小项目,但导师的任务比较紧,所以为了提高效率,后续博客会涉及到很多算法方面的设计与验证的内容,主要关于OFD ...

  7. [CodeForces10D]LCIS(最长公共上升子序列) - DP

    Description 给定两个数列,求最长公共上升子序列,并输出其中一种方案. Input&Output Input 第一行一个整数n(0<n<=500),数列a的长度. 第二行 ...

  8. 从PRISM开始学WPF(九)交互Interaction?

    0x07交互 这是这个系列的最后一篇了,主要介绍了Prism中为我们提供几种弹窗交互的方式. Notification通知式 Prism通过InteractionRequest 来实现弹窗交互,它是一 ...

  9. python 杂货铺

    python 杂货铺之不知道的python操作 1.交互模式下的神奇的_ windos中cmd交互模式中下(python2,python3),最近一个表达式的值赋给变量 _.这样我们就可以把它当作一个 ...

  10. Object.prototype.toString.call(obj)使用方法以及原理

    这几天看vue-router的源码 发现了Object.prototype.toString.call()这样的用法,当时以为这就是转成字符串的用的,但是越看越觉得不太对劲,赶紧查查资料,一查才知道没 ...