#!usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "Samson"
class Foo:
‘‘‘描述类的信息‘‘‘
country = "China"
def __init__(self,name):
self.name = name
def func(self):
pass
def __call__(self, *args, **kwargs):
print("running all",args,kwargs)
def __str__(self):#当实例过多时,可以确定是哪个实例
return "obj:%s" %self.name
#__getitem__,__setitem__,__delitem__用于索引操作,如字典。分别表示获取、设置、删除数据
def __getitem__(self, key):
print("__getitem__",key)
def __setitem__(self, key, value):
print("__getitem__",key,value)
def __delitem__(self, key):
print("__delitem__",key)
print(Foo.__doc__)#__doc__表示类的描述信息
obj = Foo("samson")
print(obj.__module__,obj.__class__)#__module__表示当前操作的对象在哪个模块,__class__表示当前操作对象的类是什么
obj()#执行__call__
print(obj.__dict__)#打印类里的所有属性,不包括实例属性
print(Foo.__dict__)#打印所有实例属性,不包括类属性
print(obj)
result = obj["k1"]#自动触发执行__getitem__
obj["k2"] = "samson"#自动触发执行__setitem__
del obj["k1"]#自动触发执行__delitem__
#另外一种类的高B格写法,一切皆对象
def __init__(self,name,age):
self.name = name
self.age = age
def func(self):
print("B格够高吗")
Zoo = type("Zoo",(object,),{"talk":func,"__init__":__init__})#第二个参数继承的父类,第三个为类的成员方法
f = Zoo("samson",20)
f.talk()
(未完待续)