嵌套

嵌套

  • 函数:参数可以是任意类型

  • 字典:对象和类都可以做字典的key和value

    class Foo(object):
        pass
    
    obj1 = Foo()
    obj2 = Foo() #s虽然二者均是Foo(),但同时作为字典的键却是可以的,
    # 因为实例化两个对象其实为开辟了两块不同的内存,所以是不同的东西, 
    
    info = {"1":1,Foo:123,obj1:111,obj2:222}
    print(info)
    print(info[Foo])
    
  • 继承的查找关系

    class Stark(object):
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
    class Admin(object):
        def __init__(self):
            self.data_list = []
            self.sk = None
    
        def set_sk(self,arg):
            self.sk = arg
    
    site = Admin() #自动执行__init__,此时site为data_list = [] sk = None
    site.set_sk(Stark)#此处的self为site
    site.sk("yang",23)
    '''
    思考:
    关键是self所代表的含义
    目前可以认为__init__就是把值封装到实例化的对象中,然后再调用self时,此时的self便为实例化的对象
    
    '''
    
    class Stack(object):
        pass
    
    class Foo(object):
        pass
    
    class Base(object):
        pass
    
    class Admin(object):
        def __init__(self):
            self._register = {}
    
        def register(self,key,arg):
            self._register[key] = arg
    
    site = Admin()
    site.register(1,Stack)
    site.register(2,Stack)
    site.register(3,Stack)
    site.register(4,Foo)
    site.register(5,Base)
    
    for k,v in site._register.items():#site._register必然是一个字典,因为其不断的覆盖补充,所以self代表的是谁显得很重要
        print(k,v)
    
    
posted @ 2020-11-20 11:02  小杨的冥想课  阅读(316)  评论(0编辑  收藏  举报