繁体   English   中英

如何在python中从其静态属性返回类的实例

[英]How to return instance of a class from its static attribute in python

只是好奇,是否有可能在返回相同类的实例化对象的类中保留静态属性? 特别是不使用工厂方法而是使用attr

class Money:
    CENT = Money('cent')

    def __init__(self, value):
        self.value = value

Money.CENT    #==> Returns Money('cent')

我能想到的最好的方法是,但是不在同一个班级内。

class SampleMoney:
    CENT = Money('cent')
    DOLLAR = Something('dollar')

SampleMoney.CENT #==> Money('cent')

您可以使用以下技巧来创建类属性:

class Something:
    class __metaclass__:
        @property
        def EMPTY(cls):
            return cls('empty')

或者,仅在之后定义它?

class Something:
    # ...

Something.EMPTY = Something('empty')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM