码迷,mamicode.com
首页 > 其他好文 > 详细

属性查找_进阶

时间:2020-04-17 09:56:18      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:return   查找   name   main   war   self   dict   pass   sel   

一:属性查找的原则:对象 ==> 类 ==> 父类

切记:父类 不是 元类

切记:父类 不是 元类

切记:父类 不是 元类

二:例子

class Mymeta(type):
    n=444

    def __call__(self, *args, **kwargs): #self=<class ‘__main__.StanfordTeacher‘>
        obj=self.__new__(self) # StanfordTeacher.__new__
        # obj=object.__new__(self)
        print(self.__new__ is object.__new__) #True
        self.__init__(obj,*args,**kwargs)
        return obj

class Bar(object):
    # n=333

    # def __new__(cls, *args, **kwargs):
    #     print(‘Bar.__new__‘)
    pass

class Foo(Bar):
    # n=222

    # def __new__(cls, *args, **kwargs):
    #     print(‘Foo.__new__‘)
    pass

class StanfordTeacher(Foo,metaclass=Mymeta):
    # n=111

    def __init__(self,name,age):
        self.name=name
        self.age=age


obj=StanfordTeacher(lili,18)
print(obj.__dict__)
# print(obj.n)
# print(StanfordTeacher.n)

 

属性查找_进阶

标签:return   查找   name   main   war   self   dict   pass   sel   

原文地址:https://www.cnblogs.com/2722127842qq-123/p/12717544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!