• python漫游2


    Python中type、metaclass、class、object

    1.python中class也是对象,它的类就是metaclass

    2.使用type创建类的方式:MyClass = type('MyClass', (), {}),第一个参数为类名,第二个参数为父类名,第三个参数为成员变量(以键值对的方式给出)

    3.

    class UpperAttrMetaclass(type):
    
        def __new__(cls, clsname, bases, dct):
    
            uppercase_attr = {}
            for name, val in dct.items():
                if not name.startswith('__'):
                    uppercase_attr[name.upper()] = val
                else:
                    uppercase_attr[name] = val
    
            return super(UpperAttrMetaclass, cls).__new__(cls, clsname, bases, uppercase_attr)
    
    class Foo(object, metaclass=Thing, kwarg1=value1):
        ...
    
    class Thing(type):
        def __new__(class, clsname, bases, dct, kwargs1=default):
            ...

    4.在python中要访问某一对象(包括变量、模块、方法)都会去namespace中根据对象名去搜索搜索顺序为LEGB(local>enclose function>globals>_buildins_)

    5.python编译器启动的时候会创建一个全局字典(global namespace):sys.modules。在进行import A操作时,先在sys.modules搜索是否有A,如果没有则导入(加入global namespace),如果有则使用sys.modules中的模块。

    python中的装饰器

    在不改变原函数的基础上,对原函数的功能做出修改。

    1.可以有基于方法的带参的、不带参的

    2.可以有基于类的参数的,不带参数的

  • 相关阅读:
    Windows下输入法全角符,半角符的切换
    hdu 2546 饭卡
    hdu 1712 ACboy needs your help
    hdu 3033 I love sneakers!
    hdu 1171 Big Event in HDU
    hdu 1114 Piggy-Bank
    HDU 1058 Humble Numbers
    hdu 1297
    hdu 2050
    hdu 2563
  • 原文地址:https://www.cnblogs.com/drinkMilk/p/10713873.html
Copyright © 2020-2023  润新知