Python';类中的s print函数
我无法在类中执行Python';类中的s print函数,python,python-2.x,Python,Python 2.x,我无法在类中执行print函数: #!/usr/bin/python import sys class MyClass: def print(self): print 'MyClass' a = MyClass() a.print() 我得到以下错误: File "./start.py", line 9 a.print() ^ SyntaxError: invalid syntax 为什么会发生这种情况?在Python2中,print是
print
函数:
#!/usr/bin/python
import sys
class MyClass:
def print(self):
print 'MyClass'
a = MyClass()
a.print()
我得到以下错误:
File "./start.py", line 9
a.print()
^
SyntaxError: invalid syntax
为什么会发生这种情况?在Python2中,
print
是一个很好的例子。它只能用于其预期目的。我不能是变量或函数的名称
在Python3中,print
是一个关键字,而不是一个关键字。例如,方法的名称可以是print
如果您正在使用Python 2并希望覆盖其默认行为,则可以从以下位置导入Python 3的行为:
您正在使用Python2(除非您有很好的理由,否则您确实不应该这样做)
在Python 2中,
print
是一个语句,因此print
实际上是一个保留字。实际上,当您试图定义名为print
的函数时,应该抛出一个SyntaxError,即:
In [1]: class MyClass:
...: def print(self):
...: print 'MyClass'
...:
...: a = MyClass()
...: a.print()
File "<ipython-input-1-15822827e600>", line 2
def print(self):
^
SyntaxError: invalid syntax
我在Python 3上尝试了您的代码,如下所示:
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
成功了
输出:
MyClass
按原样运行代码会导致语法错误。因为打印中缺少括号。另外,请注意,print在Python 2中是一个保留关键字,但在Python 3中是一个内置函数。@erip它可能是(在Python 2中)。print是一个保留字(至少在Python 2中)。您使用的是Python 2的哪个版本?这个错误令人惊讶。我本以为Python2会在
def print(self)
上投诉,因为print
是一个保留字,而Python3会在print'MyClass'
上投诉,因为Python3print
是一个函数。@juanpa.arrivillaga-我刚刚安装了2.7.12(旁白:rocks),第5行出现语法错误,def print(self):
,如预期。我不相信OP的代码会得到OP的错误消息。在Python 3.5.2上,即使没有来自uuu future_uuu导入print_函数的,它也能工作。希望我最近的编辑能让这一点更清楚。
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
MyClass