美文网首页
python 类装饰器与元类

python 类装饰器与元类

作者: SkTj | 来源:发表于2019-12-03 13:46 被阅读0次

类装饰器,元类

还有一些技术可以简化上面的代码,其中一种是使用类装饰器:

Class decorator to apply constraints

def check_attributes(**kwargs):
def decorate(cls):
for key, value in kwargs.items():
if isinstance(value, Descriptor):
value.name = key
setattr(cls, key, value)
else:
setattr(cls, key, value(key))
return cls

return decorate

Example

@check_attributes(name=SizedString(size=8),
shares=UnsignedInteger,
price=UnsignedFloat)
class Stock:
def init(self, name, shares, price):
self.name = name
self.shares = shares
self.price = price
另外一种方式是使用元类:

A metaclass that applies checking

class checkedmeta(type):
def new(cls, clsname, bases, methods):
# Attach attribute names to the descriptors
for key, value in methods.items():
if isinstance(value, Descriptor):
value.name = key
return type.new(cls, clsname, bases, methods)

Example

class Stock2(metaclass=checkedmeta):
name = SizedString(size=8)
shares = UnsignedInteger()
price = UnsignedFloat()

def __init__(self, name, shares, price):
    self.name = name
    self.shares = shares
    self.price = price

相关文章

  • python 类装饰器与元类

    类装饰器,元类 还有一些技术可以简化上面的代码,其中一种是使用类装饰器: Class decorator to a...

  • 2020-05-22

    1.python的特征: 2.装饰和元类区别: 3.装饰与元类区别实例: 4.类协议:元类的奥秘 5.如何产生的新...

  • python 装饰器 元类

    装饰器 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器...

  • python 装饰器 元类

    装饰器 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器...

  • python 装饰器 元类

    装饰器 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器...

  • python元类and装饰器

  • 元类与装饰器

    元类与装饰器的关系 在class语句的末尾,类装饰器把类名重新绑定到一个函数的结果。 元类通过一条class语句的...

  • Python装饰器

    装饰器简介 在Python中,装饰器属于“元编程”的类别,“元编程”的主要目的就是创建函数或者类,并且用它们来操纵...

  • 实现单例的几种成熟设计模式

    装饰器方式 作为类装饰器,实现单例 改写new方式 可以被继承,子类也是单例 改写type元类方式实现 总结:元类...

  • 解惑,从新认识python装饰器

    概念 python有两种装饰器: 函数装饰器(function decorators) 类装饰器(class de...

网友评论

      本文标题:python 类装饰器与元类

      本文链接:https://www.haomeiwen.com/subject/grmcpctx.html