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. JS 识别生日、性别、年龄

    <script> function IdCard(UUserCard,num){ if(num==1){ //获取出生日期 birth=UUserCard.substring(6, 10) ...

  2. 理解JavaScript中的深拷贝和浅拷贝

    , num2 = num1;console.log(num1) //1console.log(num2) //1num2 = 2; //修改num2console.log(num1) //1conso ...

  3. EOS 插件依赖关系

    EOS version: 1.0.5 update: 2018-06-19   EOS插件之间会有一个相互调用与依赖的关系,下面有一张个人画的一张草图,包含了此版本EOS所有插件相互之间的依赖关系,如 ...

  4. IOS字符串截取保留小数点后两位

    -(NSString*)getTheCorrectNum:(NSString*)tempString { //计算截取的长度 NSUInteger endLength = tempString.len ...

  5. Codeforces Round #561 (Div. 2) B. All the Vowels Please

    链接:https://codeforces.com/contest/1166/problem/B 题意: Tom loves vowels, and he likes long words with ...

  6. ORACLE索引的作用及用法

    https://blog.csdn.net/qq_34895697/article/details/52425289

  7. 064 Minimum Path Sum 最小路径和

    给定一个只含非负整数的 m x n 网格,找到一条从左上角到右下角的可以使数字之和最小的路径.注意: 每次只能向下或者向右移动一步.示例 1:[[1,3,1], [1,5,1], [4,2,1]]根据 ...

  8. DOM所有的命令(CMD)

    刚接触电脑的时候是从DOS系统开始,DOS时代根本就没有Windows这样的视窗操作界面,只有一个黑漆漆的窗口,让你输入命令.所以学DOS系统操作,cmd命令提示符是不可或缺的.可以告诉大家,大多数的 ...

  9. .net memcache

    非常感谢csdn及冷月宫主让我很快学会了.net操作 memcache 文章转自:http://download.csdn.net/detail/e_wsq/4358982 C#存取Memcache的 ...

  10. 【转】pom.xml讲解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...