gpt4 book ai didi

python - 在 Python 中使用 print 作为类方法名

转载 作者:行者123 更新时间:2023-11-28 21:45:02 25 4
gpt4 key购买 nike

Python 是否不允许在类方法名中使用 print(或其他保留字)?

$ cat a.py

import sys
class A:
def print(self):
sys.stdout.write("I'm A\n")
a = A()
a.print()

$ python a.py

File "a.py", line 3
def print(self):
^
SyntaxError: invalid syntax

print 更改为其他名称(例如,aprint)不会产生错误。如果有这样的限制,我感到很惊讶。在 C++ 或其他语言中,这不是问题:

#include<iostream>
#include<string>
using namespace std;

class A {
public:
void printf(string s)
{
cout << s << endl;
}
};


int main()
{
A a;
a.printf("I'm A");
}

最佳答案

当 print 从语句更改为函数时,Python 3 中的限制消失了。事实上,您可以通过 future 的导入获得 Python 2 中的新行为:

>>> from __future__ import print_function
>>> import sys
>>> class A(object):
... def print(self):
... sys.stdout.write("I'm A\n")
...
>>> a = A()
>>> a.print()
I'm A

作为风格说明,python 类定义print 方法是不常见的。更多 pythonic 是 return 来自 __str__ 方法的值,它自定义实例在打印时的显示方式。

>>> class A(object):
... def __str__(self):
... return "I'm A"
...
>>> a = A()
>>> print(a)
I'm A

关于python - 在 Python 中使用 print 作为类方法名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com