Python 在 class 中的打印功能
Python's print function in a class
我无法在 class:
中执行 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
是一个keyword。它只能用于其预期目的。我不能是变量名或函数名。
在Python3中,print
是一个built-in function,不是关键字。例如,方法的名称可以是 print
.
如果您正在使用 Python 2 并想覆盖其默认行为,您可以从 __future__
:
导入 Python 3 的行为
from __future__ import print_function
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
您正在使用 Python 2(您确实不应该这样做,除非您有充分的理由)。
在Python2中,print
是一个语句,所以print
其实是一个保留字。实际上,当您尝试定义名称为 print
的函数时,会抛出 SyntaxError should,即:
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 2 的确切版本。以上输出来自 Python 2.7.13 会话...
所以请注意,在 Python 3:
>>> class A:
... def print(self):
... print('A')
...
>>> A().print()
A
我在 Python 3 上试过你的代码是这样的:
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
成功了!!
输出:
MyClass
运行 你的代码给我语法错误。因为在印刷中缺少括号。另外,请注意 print 在 Python 2 中是保留关键字,但在 Python 3.
中是 built-in-function
我无法在 class:
中执行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
是一个keyword。它只能用于其预期目的。我不能是变量名或函数名。
在Python3中,print
是一个built-in function,不是关键字。例如,方法的名称可以是 print
.
如果您正在使用 Python 2 并想覆盖其默认行为,您可以从 __future__
:
from __future__ import print_function
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
您正在使用 Python 2(您确实不应该这样做,除非您有充分的理由)。
在Python2中,print
是一个语句,所以print
其实是一个保留字。实际上,当您尝试定义名称为 print
的函数时,会抛出 SyntaxError should,即:
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 2 的确切版本。以上输出来自 Python 2.7.13 会话...
所以请注意,在 Python 3:
>>> class A:
... def print(self):
... print('A')
...
>>> A().print()
A
我在 Python 3 上试过你的代码是这样的:
class MyClass:
def print(self):
print ('MyClass')
a = MyClass()
a.print()
成功了!!
输出:
MyClass
运行 你的代码给我语法错误。因为在印刷中缺少括号。另外,请注意 print 在 Python 2 中是保留关键字,但在 Python 3.
中是 built-in-function