class A:
def foo():
print 'hello world'
def foo1(self):
self.foo()
a = A()
a.foo1()
そのクラス専用の関数を使用することを検討していました。そのための唯一の方法は、慣例に従うことだと思います。その関数名の前に「_」を付け、最初の引数を次のようにします。self
しかし、foo()
まったく役に立たないのですか?
class A:
def foo():
print 'hello world'
def foo1(self):
self.foo()
a = A()
a.foo1()
そのクラス専用の関数を使用することを検討していました。そのための唯一の方法は、慣例に従うことだと思います。その関数名の前に「_」を付け、最初の引数を次のようにします。self
しかし、foo()
まったく役に立たないのですか?
重要なすべての用途について、はい。メソッドのさまざまな属性を介して生の関数を取得できますが、クラスでそのようなものを使用してもほとんど意味がありません。
>>> A.foo.im_func()
hello world
に電話してみてくださいA.foo()
。を出力します'hello world'
。
これは Python 3 でのみ機能することに注意してください。Python 2 ではTypeError
.
はい、ほとんど役に立ちません。Python 2.x では、例外をスローせずに呼び出す唯一の方法は、クラスの内部から関数を抽出して呼び出すことです。Python 3.x (を変換したと仮定) では、直接print
呼び出すことができました。A.foo()
foo()
引数が本当に必要ない場合self
は、メソッドである必要はありません。クラスが定義されているのと同じモジュール内の関数にするだけです。