为什么方法what_are_you没有输出?语法错误?

时间:2019-05-19 02:40:36

标签: python class methods

在该程序中,输出不是我期望的:

_id: ObjectId("5cb026cdd1971d0700363b4f");
number: 1
decks: Array
0: Object
 _id:  ObjectId("123asdaad71d0700363b4f");
 number: 1
 status: "Away"
 away: Array
  0: Object
   tenant: "iko"
   status: "Vacant"

1: Object
 _id:  ObjectId("123asdaad71d0700363b4f");
 number: 2
 status: "Vacant"
 away: null

相反,它什么也不输出。这是整个输出:

class example(object):
    def __init__(self, foo,bar):
        self.foo = foo
        self.bar  = bar
    def what_are_you():
        print(foo,bar)
        print("This doesn't work either")

a = example("aaa","bbb")
a.what_are_you
#should return "aaa bbb"
print(a.what_are_you)
print(a.foo,a.bar)

2 个答案:

答案 0 :(得分:1)

通过不包括括号,您可以打印函数对象,而不是调用函数。要调用该函数,请在其后加上括号。

print(a.what_are_you())

将打印what_are_you()的值(无论return语句中的值)

答案 1 :(得分:0)

正如我现在所看到的,您正在打印内容,而不是return正在打印内容,因此您可能需要使用:

a.what_are_you()

在函数中,您需要使用self来获取变量:

def what_are_you(self):
    print(self.foo,self.bar)
    print("This doesn't work either")