我有一个带有成员函数A
的类a
和一个带有默认值的参数p
。我希望这个默认值是类的成员变量。
class A:
def a(self, p = self.b):
print p
然而,它与信息崩溃:
<ipython-input-2-a0639d7525d3> in A()
1 class A:
----> 2 def a(self, p = self.b):
3 print p
4
NameError: name 'self' is not defined
我想知道是否可以将成员变量作为默认参数传递给成员函数?
一种选择是将默认的p
值设置为None
并在方法本身中检查其值:
class A:
def __init__(self, b):
self.b = b
def a(self, p=None):
if p is None:
p = self.b
print(p)
演示:
In [1]: class A:
...: def __init__(self, b):
...: self.b = b
...:
...: def a(self, p=None):
...: if p is None:
...: p = self.b
...: print(p)
...:
In [2]: a = A(10)
In [3]: a.a()
10
In [4]: a.a(12)
12