猿问

如何在 Python 构造函数中使用 *args 和 self

我需要一个 Python 方法来访问 self 实例变量,并且还能够接受任意数量的参数。我基本上想要一个可以通过调用的方法 foo

foo(a, b, c)

或者

foo()

在课堂上,我认为构造函数是

def foo(self, *args):

这样对吗?另外,仅供参考,我是 Python 的新手(如果你不知道的话)。


米脂
浏览 270回答 3
3回答

墨色风雨

你只需要在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)

肥皂起泡泡

def foo(self, *args):对,那是正确的。

繁星点点滴滴

您正确声明了该方法。您还可以使用双星号来接受关键字参数。 参考:表达式双星号 ** 表示字典解包。它的操作数必须是一个映射。每个映射项都添加到新字典中。较晚的值替换由较早的键/数据对和较早的字典解包已经设置的值。....星号 * 表示可迭代解包。它的操作数必须是可迭代的。可迭代对象被扩展为一系列项目,这些项目包含在解包现场的新元组、列表或集合中。Args 将是一个元组。要访问这些值,您必须迭代或使用位置参数,即: args[0]
随时随地看视频慕课网APP

相关分类

Python
我要回答