我正在尝试使用python中的类。我试着运行以下代码。
class Abc:
def a(self):
print ("not to be seen")
def b(self):
print("inaccessible is")
self.a
say = Abc()
say.b
我期待输出为
inaccessible is
not to be seen
相反,我得到以下输出:
SyntaxError: invalid syntax
突出显示。
请有人指出我做错了什么。
编辑:我正在使用IDLE GUI。 Python 33说Python文档。
答案 0 :(得分:2)
Python喜欢使语法非常清晰 - 函数在调用没有参数的函数时不是可选的()
s,就像在其他语言中一样。
你并没有把这些功能称为'陈述'它们。
尝试
class Abc:
def a(self):
print ("not to be seen")
def b(self):
print("inaccessible is")
self.a()
say = Abc()
say.b()
从语法上讲,代码是有效的。
答案 1 :(得分:2)
你几乎拥有它。您需要通过添加()
来调用这些函数,如下所示:
class Abc:
def a(self):
print ("not to be seen")
def b(self):
print("inaccessible is")
self.a()
say = Abc()
say.b()
实际上我很困惑为什么你的代码会抛出语法错误。在Python中,声明一个函数是有效的。
答案 2 :(得分:0)
好的,我可以通过为Python 3.3.0安装idle来重现您的错误。很抱歉,我们都怀疑您没有包含整个错误消息,因为IDLE不会产生超过红色SyntaxError: invalid syntax
。您的代码和类定义没有任何问题。
我想,你只是将代码粘贴到你的Python shell窗口中。这样,事情将无法正常工作,因为缩进不能正确生成。
尝试将行class Abc:
粘贴到shell窗口中,然后按Enter
。您将看到IDLE使用制表符自动缩进下一行。这是以下行的正确缩进,因此当您输入它时,您需要粘贴def a(self):
而不需要任何额外的缩进!如果您逐行粘贴并在需要时将缩进减少一个,并使用额外的Enter
终止类定义,则代码将正确执行。
但是,您应该更好地使用以下方法:
whatever.py
File -> Open
并打开此文件F5
或说Run -> Run Module
或者更好的是,通过直接执行python whatever.py
直接在shell中使用Python。