Операции набора без использования типа данных Set () [duplicate]

Удивленный никто не указал на это:

class FooType(type):
    @property
    def Foo(cls):
        return "foo!"

    @property
    def Bar(cls):
        return "bar!"

class MyClass(metaclass=FooType):
    pass

Works:

>>> MyClass.Foo
'foo!'
>>> MyClass.Bar
'bar!'

(для Python 2.x измените определение MyClass на:

class MyClass(object):
    __metaclass__ = FooType

)

То, что другие ответы говорят о str, справедливо для этого решения: оно должно быть реализовано на возвращаемом типе.

-10
задан Peter Mortensen 7 December 2016 в 22:34
поделиться