Python 为def';D
在Python中,是否有任何方法来声明所声明类型的类成员Python 为def';D,python,class,singleton,Python,Class,Singleton,在Python中,是否有任何方法来声明所声明类型的类成员 class Foo: def __init__(self, a, b): self.one = a self.two = b ZERO = Foo(0, 0) ONE = Foo(0, 1) 这个问题似乎源于这样一个事实:在对Foo.ZERO和Foo.ONE进行评估时,类Foo没有完全定义。在保持Foo.MEMBER的形式的同时,有没有办法克服这个问题?我认为这是不可能的!(也许
class Foo:
def __init__(self, a, b):
self.one = a
self.two = b
ZERO = Foo(0, 0)
ONE = Foo(0, 1)
这个问题似乎源于这样一个事实:在对
Foo.ZERO
和Foo.ONE
进行评估时,类Foo
没有完全定义。在保持Foo.MEMBER
的形式的同时,有没有办法克服这个问题?我认为这是不可能的!(也许我想不清楚)
如果可能的话这是因为,
Foo有一个成员ZERO,它也会生成Foo,再次
我认为,如果可以生成该类,python也会提醒您或其他事情。我认为这是不可能的!(也许我想不清楚) 如果可能的话这是因为, Foo有一个成员ZERO,它也会生成Foo,再次
我认为,如果可以生成该类,python也会提醒您或其他事情。可以这样做:
class Foo:
def __init__(self, a, b):
self.one = a
self.two = b
Foo.ZERO = Foo(0, 0)
Foo.ONE = Foo(0, 1)
可以这样做:
class Foo:
def __init__(self, a, b):
self.one = a
self.two = b
Foo.ZERO = Foo(0, 0)
Foo.ONE = Foo(0, 1)
这似乎有效:
class Enum(object):
def __init__(self, a, b):
self.one = a
self.two = b
def __metaclass__(name, bases, dict):
cls = type(name, bases, dict)
cls.ZERO = cls(0, 0)
cls.ONE = cls(0, 1)
return cls
这似乎有效:
class Enum(object):
def __init__(self, a, b):
self.one = a
self.two = b
def __metaclass__(name, bases, dict):
cls = type(name, bases, dict)
cls.ZERO = cls(0, 0)
cls.ONE = cls(0, 1)
return cls
您能解释一下为什么需要这样做吗?我假设目标是枚举类型?例如,类似于Java的
enum
语法。这实际上不是用于枚举(尽管这是一个很好的应用!),而是用于常量,如Java.lang.BigInteger.ZERO
等。我正在为运筹学的应用程序编写严格的数字类-,如果你愿意的话。你能解释一下为什么需要这样做吗?我假设目标是枚举类型?例如,类似于Java的enum
语法。这实际上不是用于枚举(尽管这是一个很好的应用!),而是用于常量,如Java.lang.BigInteger.ZERO
等。我正在为运筹学的应用程序编写严格的数字类-,如果你愿意的话。