属性查找_进阶

Posted 2722127842qq-123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了属性查找_进阶相关的知识,希望对你有一定的参考价值。

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

切记:父类 不是 元类

切记:父类 不是 元类

切记:父类 不是 元类

二:例子

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)

 

以上是关于属性查找_进阶的主要内容,如果未能解决你的问题,请参考以下文章

我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?

进阶学Python:Python面向对象之属性方法

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

python进阶之类常用魔法方法和魔法属性

Python进阶-----类的内置item属性方法

学习Python基础--------6面对对象进阶