Python:*方法在类方法中的行为

时间:2019-03-05 02:10:50

标签: python

我正在尝试编写一个包装Python函数,该函数接受可变数量的位置参数,然后将这些位置参数处理并从库中馈送到主函数中。我在这里创建了一个最小的示例,该示例显示了我当前面临的问题:

class bar :
    def __init__(self, *args) :
        print(args)
    def foo(self,*args) :
        print(args)

a = bar('name',123,'def')
bar.foo('name',123,'def')

输出为:

  

('name',123,'def')

     

(123,'def')

似乎self中的foo()被分配了'name',而__init__()中没有被分配。有办法解决吗?

1 个答案:

答案 0 :(得分:1)

您应该在实例bar.foo上调用方法时,正在类a.foo上调用方法。

a.foo('name',123,'def')