【问题标题】:unable to call member function in class python [closed]无法调用类python中的成员函数[关闭]
【发布时间】:2016-03-13 05:44:09
【问题描述】:

我在 python 2.7 上并试图从位于同一类中的另一个函数调用成员函数。

class Foo:
     
     def bar(self):
         print 'correctly called'
         
     def baz(self):
         self.bar
    
  
a = Foo()
a.baz()

我检查了this 问题并编写了一个如上所述的示例类,但仍然无法打印位于函数bar 中的"correctly called"。这听起来可能有点菜鸟,但我认为这是调用成员函数的唯一方法还是我做错了什么?

我想要什么

我只想从同一类中的另一个成员函数baz 调用位于bar 函数中的打印语句。

【问题讨论】:

    标签: python


    【解决方案1】:

    要调用函数,请使用括号:

    class Foo:
         def bar(self):
             print('correctly called')
    
         def baz(self):
             self.bar() # <-- ()
    

    当您编写self.bar 时,这是一个对函数对象求值的表达式。如果您想将函数对象传递给map 等,这很有用。

    【讨论】:

    • 对不起,我完全错过了。感谢您的回答和编辑。我明白什么以及为什么它不起作用。
    【解决方案2】:

    ()调用方法:

    self.bar()
    

    self.bar 是对该对象的访问。需要括号来实际调用它。

    【讨论】:

    • 谢谢解决了。
    • @phihag 很抱歉迟到了。起初它让我等待 12 分钟,然后我完全忘记了。我现在已经做到了。感谢您的努力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    相关资源
    最近更新 更多