我无法print在类中执行函数:
#!/usr/bin/python
import sys
class MyClass:
def print(self):
print 'MyClass'
a = MyClass()
a.print()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
File "./start.py", line 9
a.print()
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
Rob*_*obᵩ 10
在Python 2中,print是一个关键字.它只能用于其预期目的.我不能是变量或函数的名称.
在Python 3中,print是一个内置函数,而不是关键字.因此,例如,方法可以具有名称print.
如果您正在使用Python 2并希望覆盖其默认行为,则可以从__future__以下位置导入Python 3的行为:
from __future__ import print_function
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
Run Code Online (Sandbox Code Playgroud)
您正在使用Python 2(除非您有充分的理由,否则您不应该使用它).
在Python 2中,print是一个语句,所以print实际上是一个保留字.实际上,当您尝试使用名称定义函数时,应该抛出SyntaxError print,即:
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
Run Code Online (Sandbox Code Playgroud)
所以,我很好奇你正在使用的Python 2的确切版本.以上输出来自Python 2.7.13会话......
请注意,在Python 3中:
>>> class A:
... def print(self):
... print('A')
...
>>> A().print()
A
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |