为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

米脂 2021-11-30 10:28:54
我需要一个 Python 方法来访问 self 实例变量,并且还能够接受任意数量的参数。我基本上想要一个可以通过调用的方法 foofoo(a, b, c)或者foo()在课堂上,我认为构造函数是def foo(self, *args):这样对吗?另外,仅供参考,我是 Python 的新手(如果你不知道的话)。
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-11-30
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

def foo(self, *args):

对,那是正确的。


查看完整回答
反对 回复 2021-11-30
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您正确声明了该方法。您还可以使用双星号来接受关键字参数。 参考:表达式

双星号 ** 表示字典解包。它的操作数必须是一个映射。每个映射项都添加到新字典中。较晚的值替换由较早的键/数据对和较早的字典解包已经设置的值。

....

星号 * 表示可迭代解包。它的操作数必须是可迭代的。可迭代对象被扩展为一系列项目,这些项目包含在解包现场的新元组、列表或集合中。

Args 将是一个元组。要访问这些值,您必须迭代或使用位置参数,即: args[0]


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信