如何在Python中为同一个类中的关键字参数分配实例变量作为默认值
-
20-12-2019 - |
题
在Python3.3+中,给定一个带有方法的类,该类有一个实例变量,这是一个简单的object()对象(我们将其称为self。假)。如何使用该实例变量作为关键字参数的默认值?
class Test:
def __init__(self):
self.FALSE=object();
def Tester(self, key=self.FALSE):
pass;
这当然不起作用,因为关键字参数默认值的范围不包括self(也不包括测试类)。但是,它确实包括全局变量和至少一些对象。
有没有办法做到这一点?我现在没有迫切的需要,但如果我能做到这一点,那就太好了。我认为你可以将任何东西作为关键字参数默认值传递。肯定有办法。
解决方案
最初有默认值 key
作为 None
而在功能中,如果 key
是 None
, ,然后你可以设置默认值,无论你喜欢什么。
def Tester(self, key=None):
if key is None:
key = self.FALSE
此外,Python中不需要分号,就像我们在C/C++/JAVA中需要的那样。
其他提示
没有办法,因为在创建实例之前不存在实例属性,但在创建类时,在任何存在的情况下都定义了方法。也就是说,说(在你的问题中,你在你的问题中)“类有一个实例变量”是不正确的。班上没有这样的东西;只有实例只有该变量,才能且仅在创建它们时。
您必须这样做,因为furtheye建议并处理在方法主体内部分配默认值。
不隶属于 StackOverflow