aa.py

class C():
def __init__(self):
self.name='QiZhiguang'

类的特殊成员方法:  

# 1. __doc__  表示类的描述信息
class Dog(object):
'''描述信息:这个类是描述狗这个对象的'''
def __init__(self,name):
self.name=name
def talk(self):
print('吃饱了')
print(Dog.__doc__)#不用实例化
# 2. __module__ 和 __class__
#   __module__ 表示当前操作的对象在那个模块
#   __class__ 表示当前操作的对象的类是什么
from lib.aa import C
obj=C()
print(obj.__module__) #输出 lib.aa 即:输出模块
print(obj.__class__) #输出 lib.aa.C 即:输出类
# 3. __init__ 构造方法,通过类创建对象时,自动触发执行。
# 4.__del__
# 析构方法,当对象在内存中被释放时,自动触发执行。
# 注:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的
# 5. __call__ 对象后面加括号,触发执行。
# 注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
class Dog(object):
def __init__(self,name):
self.name=name
def talk(self):
print('吃饱了')
def __call__(self, *args, **kwargs):
print('running call')
print(args,kwargs)
d=Dog('huzi')
d()
d(123,name=333)
Dog('huzi')()
Dog('huzi')(123,name=333)
# 6. __dict__ 查看类或对象中的所有成员
class Cat(object):
n=13
def __init__(self,name):
self.name=name
self.__food=None
def eat(self):
print('eating')
print(Dog.__dict__)#把上述类中所有的方法以字典形式打印出来,打印类里所有属性,不包括实例属性
c=Cat('白静怡')
print(c.__dict__)#打印所有实例属性,不包括类属性
print(c)#打印的只是内存地址,功能变化下#7
#7.__str__ 如果一个类中定义了__str__方法,那么在打印对象时,默认输出该方法的返回值。
class Cat(object):
def __init__(self,name):
self.name=name
def eat(self):
print('eating')
def __str__(self):
return '<obj:%s>'%self.name
c=Cat('白静怡')
print(c)
# 8.__getitem__、__setitem__、__delitem__
# 用于索引操作,如字典。以上分别表示获取、设置、删除数据
class Foo(object):
def __init__(self):
self.data={}
def __getitem__(self, key):
print('__getitem__', key)
return self.data.get(key)
def __setitem__(self, key, value):
print('__setitem__', key, value)
self.data[key]=value
def __delitem__(self, key):
print('__delitem__', key)
obj = Foo()
obj['name']='qiqi'
print(obj['name'])
print(obj.data)
# result = obj['k1'] # 自动触发执行 __getitem__
# obj['k2'] = 'alex' # 自动触发执行 __setitem__
del obj['k1']
#http://www.cnblogs.com/alex3714/articles/5213184.html

  

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

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

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

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

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

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

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

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

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

  5. Calendar类介绍_获取对象的方式和Calendar类的常用成员方法

    java.util.Calendar类:日历类 Calendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR.MONTH.DAY_OF_MONTH.HOUR ) Calendar类无法直 ...

  6. Java基础知识强化之集合框架笔记68:Collections类概述和成员方法(备注:Collection 和 Collections区别)

    1. Collections类概述: 针对集合操作的工具类,都是静态方法.  2. Collection 和 Collections的区别: Collections是个java.util下的类,它包含 ...

  7. python 类的特殊成员方法

    __doc__ # 输出类的描述信息 __module__ # 表示当前操作的对象在那个模块 __class__ # 表示当前操作的对象的类是什么 __init__ # 构造方法,通过类创建对象是,自 ...

  8. Python3学习之路~7.2 类的特殊成员方法

    1. __doc__ 表示类的描述信息 class Dog(object): """ 这个类是描述狗这个对象的 """ def func(s ...

  9. 类的特殊成员方法,类的起源type, metaclass

    1.__doc__表示类的描述信息 2. __module__ 和  __class__  __module__ 表示当前操作的对象在那个模块 __class__     表示当前操作的对象的类是什么 ...

随机推荐

  1. Oracle数据库恢复之resetlogs

    实验环境:RHEL 5.4 + Oracle 11.2.0.3 如果是一名合格的Oracle DBA,对resetlogs这种关键字都应该是极其敏感的,当确认需要这种操作时一定要三思而后行,如果自己不 ...

  2. 成为高手前必懂的TCP干货

    目录 一.起源 二.TCP 协议 TCP 的特点? 怎么理解全双工? TCP 的数据包如何组织? 三.TCP 工作流程 四. 三次握手 五. 四次挥手 小结 我们在平时的开发过程中,或多或少都会涉猎到 ...

  3. HDU 3410【单调栈】

    思路: 单调栈. 鄙人的记忆:按当前为最大值的两边延伸就是维护单调递减栈. //#include <bits/stdc++.h> #include <iostream> #in ...

  4. 容易忘记的css属性和动画属性

    动画属性 @keyframes 关键帧 --> animation 活泼 (配合使用) transform 变换 --> transition 过渡 (配合使用) 1.animation ...

  5. Silhouette-Outlined Diffuse

    http://wiki.unity3d.com/index.php/Silhouette-Outlined_Diffuse A variant of Outlined Diffuse 3 showin ...

  6. 基于testcontainers的现代化集成测试进阶之路

    大型的软件工程项目除了大量的产品级代码外必不可少的还有大量的自动化测试.自动化测试包含从前端到后端甚至到产品线上不同模块和环境的各种类型的测试.一个比较经典的关于自动化测试分布的理论就是测试金字塔,是 ...

  7. Django + Vue cli 3.0 访问静态资源问题

    [问题背景] 用Vue clie 3.0的搭建得框架把我坑死了,在打包后,调用不到静态资源js,css,mp3等 [问题原因] vue cli 3.0打包后,dist目录下没有static目录,而Dj ...

  8. snipaste截图软件

  9. vue教程4-vueadmin上手

    项目地址 https://github.com/PanJiaChen/vue-admin-template 这是一个 极简的 vue admin 管理后台 它只包含了 Element UI & ...

  10. 洛谷P4238【模板】多项式求逆

    洛谷P4238 多项式求逆:http://blog.miskcoo.com/2015/05/polynomial-inverse 注意:直接在点值表达下做$B(x) \equiv 2B'(x) - A ...