Pythonはメソッドメソッド名にprint
(または他の予約語)を使用できませんか?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
)がエラーを生成しないであろう。このような制限があると私には驚くべきことです。
#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");
}
C++では、 'printf'は予約語ではありません。 'int'メソッドの名前をつけてみると、C++はそれを許さないが、PythonではPythonで予約語ではないので、Pythonはそれを許していることがわかります。 – user2357112