1
我有一个类应该是这个类的一个实例。我不能在声明行创建一个实例,因为python解释器不知道如何在那个时候构造对象。有一种可能的解决方法:在类声明后进行初始化。python中的类变量初始化
class A(object):
static_variable = None
def some_method(self, a=static_variable):
print a
A.static_variable = A()
但我需要使用该类变量作为默认参数。这样可以解决这个问题:
def some_method(self, a=None):
a = a if a else A.static_variable
print a
但是,它看起来对我来说非常不合理。任何关于如何使用这种静态变量作为默认参数的建议将不胜感激。
使用'param = None'然后测试'如果parem是None'绝对是pythonic。 –
为什么实例需要成为该类的一个变量?为什么不直接在模块级别定义它? –
@DanielRoseman是的,我可以在模块级别定义它,但仍不能解决默认参数的问题。 – midas