Python-元类通俗易懂解释

创建类方式

#创建类:方式1

class Foo(object):
    v1 = 123
    def func(self):
        return 999

#创建类:方式2

Foo = type("Foo", (object,), {"v1":123, "func": lambda self: 999}


obj = Foo()
print(obj.v1)
print(obj.func())

type解释

Python的最终父类是object,实际object是由type创建的   ; type创建类

也就可以在__new__方法里操作Foo里的类变量 如v1    del attrs["v1"] 对变量操作或者修改

class MyType(type):
    def __new__(cls, name, bases, attrs):
        print(name, bases, attrs)
        xx = super().__new__(cls, name, bases, attrs)
        return xx

# Foo = type("Foo", (object,), {"v1":123, "func": lambda self: 999}
class Foo(object, metaclass=MyType):
    v1 = 123

    def func(self):
        pass



D:\python\system\dahe\venv\Scripts\python.exe D:/python/system/dahe/TestDemo.py
Foo (<class 'object'>,) {'__module__': '__main__', '__qualname__': 'Foo', 'v1': 123, 'func': <function Foo.func at 0x0000024C79B949A0>}

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值