欢迎来到氵一壶灬清酒い的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。

组合补充--类的特殊成员

一:组合的补充(逐级进阶对比)

 1),类和对象是否能做字典的key?

class Foo:
    pass

user_info = {
    Foo:1,
    Foo():5
}
print(user_info)


#{<class '__main__.Foo'>: 1, <__main__.Foo object at #0x02005990>: 5}

 2),对象中到底有什么?

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())


#8
#8 None
#9
#9 None

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')

#创建一个列表,列表中有三个对象(实例)
##[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

4)

class StarkConfig(object):
    def __init__(self,num):
        self.num = num

    def changelist(self,request):
        print(self.num,request)

class RoleConfig(StarkConfig):
    pass
 # 创建了一个列表,列表中有三个对象(实例)
# [ 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
# 3   168
View Code

5)

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
View Code

6)

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)

config_obj_list = [StarkConfig(1),StarkConfig(2),RoleConfig(3)]
config_obj_list[1].run()
config_obj_list[2].run() 


#2 999
#666 3
View Code

7)

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()
print(len(site._registry))       # 0(长度)
site.register('range',666)
site.register('shilei',438)
print(len(site._registry))       # 2

site.register('lyd',StarkConfig(19))
site.register('yjl',StarkConfig(20))
site.register('fgz',RoleConfig(33))

print(len(site._registry))       # 5
View Code

8)

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)

#  len = 3
#  19  5
#  20  5
#  666  33
View Code

9)

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.run()


#  #19   999
#  #20   999
#  # 666  33
View Code

10)

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)) # 3
for k,row in site._registry.items():
    row.run()


#2
#<class '__main__.UserInfo'> 999
#<class '__main__.Department'> 999
View Code

 

posted on 2018-08-29 22:11  成伤大大  阅读(132)  评论(0编辑  收藏  举报

导航