__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. 流程控制语句(MySQL/MariaDB )

    本文目录:1.BEGIN...END2.true和false3.if结构4.case结构5.loop.leave和iterate6.repeat循环7.while循环 MySQL/MariaDB中的符 ...

  2. Collaborative Filtering(协同过滤)算法详解

    基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分.根据不同用户对相同商品或内容的态度和偏好程度计算用户 ...

  3. DDD实战进阶第一波(二):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架一)

    要实现软件设计.软件开发在一个统一的思想.统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束. 虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍 ...

  4. git 添加管理成员

    git 添加管理成员   登录git后的样子: 具体操作流程看截图和说明 : * 图中1:打开设置面板: * 图中2:打开成员面板: * 图中3:添加成员功能标签: * 图中4:添加的成员,这里会弹出 ...

  5. IIS进行URL重写

    一.Why? 1.先来讲一讲为什么我们要使用url重写这个东西 2.因为我学习的后端是nodejs,然后我发现nodejs一个非常让人难受的事,就是它监听端口不是80和443时,你访问网页需要输入端口 ...

  6. 1.4WEB API 路由配置及参数传输

    在没有添加路由时,webapi 的访问比较恶心,访问的时候是没有接口方法的.如果定义了同样参数的方法,它就傻傻的分不清的,为了解决这个问题,我们加上路由吧. 这是生成的api帮助文档列表,可以看到下面 ...

  7. Python面向对象——多重继承大揭秘

    1如果如图所示使用多重继承,我们将看到什么 2我们看到了基类被执行了两次Baseclass 3代码验证吧 class BaseClass: num_base_calls = 0 def call_me ...

  8. C# Execl表格文件转xml文件

    在我们的工作中可能会需要到让execl表格转换成xml文件来使用,这样程序读取数据来也比较方便 下面就写一个小程序来实现execl表格转换成xml文件来使用 会使用到的知识点如下 1:引用第三方Exe ...

  9. Git reset到某一次commit

    下图场景:张三和李四并行开发,张三提交commit1(bc2dd00),李四提交commit2(7f019d2),张三再提交commit3(44d4fc5),如果此时李四revert commit2, ...

  10. webpack的学习准备工作

    第一步:创建一个空项目,在terminal中 npm init  创建package.json文件,直接回车便可. 第二步:局部安装webpack: npm install --save-dev we ...