嵌套
-
函数:参数可以是任意类型
-
字典:对象和类都可以做字典的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)