说明:表示类的描述信息
class Foo:
""" 描述类信息,这是用于看片的神奇 """
def func(self):
pass
print Foo.__doc__
#输出:类的描述信息
说明:__module__ 表示当前操作的对象在哪个模块
__class__ 表示当前操作的类是什么
# _*_ coding:utf-8 _*_ import socket import threading # 创建socket实例 server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定socket的监听地址 server.bind((‘localhost‘, 10086)) # 设置socket最大等待连接数 server.listen(5) print(server.__module__) # socket print(server.__class__) # <class ‘socket.socket‘>
说明:构造方法,通过类创建对象时,自动触发执行。
说明:析构方法,当对象在内存中被释放是,自动触发执行。此方法一般无需定义。
说明:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 __call__ 方法的执行是由对象后加括号触发,即:对象() 或者 类()()。
class Foo(object):
def __init__(self):
self.name = "shuaigaogao"
def __call__(self, *args, **kwargs): #重写call方法
print("running call",args,kwargs)
f = Foo() #执行__init__
f(1,2,3,name=333) # 执行call方法,也可以写成 Foo()(1,2,3,name=333)
#输出
running call (1, 2, 3) {‘name‘: 333}
说明:查看类或对象中的所有成员
说明:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值。
class Province(object):
country = ‘China‘
def __init__(self, name):
self.name = name
def __str__(self):
return "<obj:{0}>".format(self.name)
p = Province("jiangsu")
print(p) #打印这个对象
#输出
<obj:jiangsu> #给对象重新起了一个名字
说明:用于索引操作,如字典。以上分别表示获取、设置、删除数据。
class Foo(object):
def __getitem__(self, key):
print(‘__getitem__:‘,key)
def __setitem__(self, key, value):
print(‘__setitem__:‘,key,value)
def __delitem__(self, key):
print(‘__delitem__‘,key)
f = Foo()
f["name"] = "Kirusx" #自动触发__setitem__方法
f["name"] #自动触发__getitem__方法
del f["name"] #自动触发__delitem__方法
#输出
__setitem__: name Kirusx
__getitem__: name
__delitem__ name
注:这边的__delitem__没有做真正的删除,只是触发这个方法,想要真正删除,只需要在__delitem__函数中添加删除功能即可。
原文:http://www.cnblogs.com/kirusx/p/6974194.html