class foo: pass user_info = { foo:1, foo():5 } print(user_info) #{<class '__main__.foo'>: 1, <__main__.foo object at 0x000002cf8b1a9cf8>: 5}
class foo(object): def __init__(self,age): self.age = age def display(self): print(self.age) data_list = [foo(8),foo(9)] for item in data_list: print(item.age,item.display())
class starkconfig(object): def __init__(self,num): self.num = num def changelist(self,request): print(self.num,request) class roleconfig(starkconfig): def changelist(self,request): print('666') # 创建了一个列表,列表中有三个对象(实例) # [ starkconfig对象(num=1), starkconfig对象(num=2), roleconfig对象(num=3) ] config_obj_list = [starkconfig(1),starkconfig(2),roleconfig(3)] for item in config_obj_list: print(item.num)
# 1 2 3
class starkconfig(object): def __init__(self,num): self.num = num def changelist(self,request): print(self.num,request) class roleconfig(starkconfig): def changelist(self,request): print(666,self.num) # 创建了一个列表,列表中有三个对象(实例) # [ starkconfig对象(num=1), starkconfig对象(num=2), roleconfig对象(num=3) ] config_obj_list = [starkconfig(1),starkconfig(2),roleconfig(3)] for item in config_obj_list: item.changelist(168)
#1 168
#2 168
#666 3
class starkconfig(object): def __init__(self,num): self.num = num def changelist(self,request): print(self.num,request) def run(self): self.changelist(999) class roleconfig(starkconfig): def changelist(self,request): print(666,self.num) class adminsite(object): def __init__(self): self._registry = {} def register(self,k,v): self._registry[k] = v site = adminsite() site.register('lyd',starkconfig(19)) site.register('yjl',starkconfig(20)) site.register('fgz',roleconfig(33)) print(len(site._registry)) # 3 for k,row in site._registry.items(): row.changelist(5)
class userinfo(object): pass class department(object): pass class starkconfig(object): def __init__(self,num): self.num = num def changelist(self,request): print(self.num,request) def run(self): self.changelist(999) class roleconfig(starkconfig): def changelist(self,request): print(666,self.num) class adminsite(object): def __init__(self): self._registry = {} def register(self,k,v): self._registry[k] = v(k) site = adminsite() site.register(userinfo,starkconfig) site.register(department,starkconfig) print(len(site._registry)) for k,row in site._registry.items(): row.run()
class base(object): def f1(self): print('5个功能') class foo(object): def f1(self): print('3个功能') base.f1(self) obj = foo() obj.f1()
class foo(object): def f1(self): super().f1() print('3个功能') class bar(object): def f1(self): print('6个功能') class info(foo,bar): pass obj = info() obj.f1()
class foo: def __init__(self, name): self.name = name self.age = 18 obj = foo('迪迦') # 自动执行类中的 __init__ 方法
class foo: def __init__(self): pass def __call__(self, *args, **kwargs): print '__call__' obj = foo() # 执行 __init__ obj() # 执行 __call__
class foo(object): def __getitem__(self, item): print(item) return 8 obj = foo() ret = obj['yu'] print(ret)
class foo(object): def __setitem__(self, key, value): print(key, value, 111111111) obj = foo() obj['k1'] = 123
class foo(object): def __delitem__(self, key): print(key) obj = foo() del obj['uuu']
class foo(object): def __init__(self, a1, a2): self.a1 = a1 self.a2 = a2 def __add__(self, other): return self.a1 + other.a2 obj1 = foo(1,2) obj2 = foo(88,99) ret = obj2 + obj1 print(ret)
class foo(object): def __init__(self, a1, a2): self.a1 = a1 self.a2 = a2 def __enter__(self): print('1111') return 999 def __exit__(self, exc_type, exc_val, exc_tb): print('22222') obj = foo(1,2) with obj as f: print(f) print('内部代码')
#!/usr/bin/env python # -*- coding:utf-8 -*- class c: def __init__(self): self.name = 'wupeiqi' lib/aa.py
from lib.aa import c obj = c() print obj.__module__ # 输出 lib.aa,即:输出模块 print obj.__class__ # 输出 lib.aa.c,即:输出类
class foo: """ 描述类信息,这是用于看片的神奇 """ def func(self): pass print foo.__doc__ #输出:类的描述信息
class foo: def __init__(self): pass def __call__(self, *args, **kwargs): print '__call__' obj = foo() # 执行 __init__ obj() # 执行 __call__
class province: country = 'china' def __init__(self, name, count): self.name = name self.count = count def func(self, *args, **kwargs): print 'func' # 获取类的成员,即:静态字段、方法、 print province.__dict__ # 输出:{'country': 'china', '__module__': '__main__', 'func': <function func at 0x10be30f50>, '__init__': <function __init__ at 0x10be30ed8>, '__doc__': none} obj1 = province('hebei',10000) print obj1.__dict__ # 获取 对象obj1 的成员 # 输出:{'count': 10000, 'name': 'hebei'} obj2 = province('henan', 3888) print obj2.__dict__ # 获取 对象obj1 的成员 # 输出:{'count': 3888, 'name': 'henan'}
class foo: def __str__(self): return 'wupeiqi' obj = foo() print obj # 输出:wupeiqi
# __iter__ # l1是list类的一个对象,可迭代对象 l1 = [11,22,33,44] # l2是list类的一个对象,可迭代对象 l2 = [1,2,3,4] class foo: def __init__(self,name,age): self.name = name self.age = age def func(self): pass def __iter__(self): return iter([11,22,33,44,55,66,7]) # 或 # yield 123 # yield 456 # yield 789 # obj1是foo类的一个对象,可迭代对象 """ 如果想要把不可迭代对象 -> 可迭代对象 1. 在类中定义__iter__方法 2. iter内部返回一个迭代器(生成器也是一种特殊迭代器) """ obj = foo('盖伦',23) for item in obj: print(item) 结果: 22 44 66 __iter__
class foo(object): def __init__(self, a1, a2): # 初始化方法 """ 为空对象进行数据初始化 :param a1: :param a2: """ self.a1 = a1 self.a2 = a2 def __new__(cls, *args, **kwargs): # 构造方法 """ 创建一个空对象 :param args: :param kwargs: :return: """ return object.__new__(cls) # python内部创建一个当前类的对象(初创时内部是空的.). obj1 = foo(1,2) print(obj1) obj2 = foo(11,12) print(obj2) 真正的构造方法__new__
class foo(object): def __init__(self, a1, a2): # 初始化方法 """ 为空对象进行数据初始化 :param a1: :param a2: """ self.a1 = a1 self.a2 = a2 def __new__(cls, *args, **kwargs): # 构造方法 """ 创建一个空对象 :param args: :param kwargs: :return: """ return object.__new__(cls) # python内部创建一个当前类的对象(初创时内部是空的.). obj1 = foo(1,2) print(obj1) obj2 = foo(11,12) print(obj2)
如对本文有疑问, 点击进行留言回复!!
网友评论