我需要一个Python方法来访问自己的实例变量,并且还可以接受任意数量的参数。我基本上想要一个可以通过
调用的方法foofoo(a, b, c)
或
foo()
在课堂上,我认为构造函数将是
def foo(self, *args):
这是正确的吗?另外,Fyi,我是Python的新手(如果您无法分辨)。
答案 0 :(得分:1)
def foo(self, *args):
是的,这是正确的。
答案 1 :(得分:1)
您只需要在self
参数后面添加它:
class YourClass:
def foo(self, *args):
print(args)
def bar(self, *args, **kwargs):
print(args)
print(kwargs)
def baz(self, **kwargs):
print(kwargs)
我还添加了一种方法,其中还添加了**kwargs
,并且同时添加了*args
和**kwargs
。
>>> o = YourClass()
>>> o.foo()
()
>>> o.foo(1)
(1,)
>>> o.foo(1, 2)
(1, 2)
答案 2 :(得分:1)
您正确声明了该方法。您还可以使用双星号来接受关键字参数。 Reference: Expressions
双星号**表示字典解包。其操作数必须是映射。每个映射项都添加到新词典中。较新的值将替换较早的键/基准对和较早的字典解包已设置的值。
....
星号*表示可重复拆包。它的操作数必须是可迭代的。可迭代对象被扩展为一系列项目,这些项目包含在拆包现场的新元组,列表或集合中。
Args将是一个元组。要访问这些值,您必须迭代或使用位置参数,即:args [0]