私は、これはA.static_method()
と同等になりたい、次のPythonのメソッドにパラメータとしてクラス(オブジェクトではない)を渡すことはできますか?
class A:
def static_method_A():
print "hello"
def main(param=A):
param.static_method_A()
のような何かをしたいです。これは可能ですか?
私は、これはA.static_method()
と同等になりたい、次のPythonのメソッドにパラメータとしてクラス(オブジェクトではない)を渡すことはできますか?
class A:
def static_method_A():
print "hello"
def main(param=A):
param.static_method_A()
のような何かをしたいです。これは可能ですか?
クラスはPythonのファーストクラスのオブジェクトです。
あなたの例では、@classmethod
(クラスオブジェクトを初期引数として使用)または@staticmethod
(初期引数なし)デコレータを使用する必要があります。
どうしてですか?静的メソッドに@staticmethodを追加することを忘れないでください。
class A:
@staticmethod
def static_method_A():
print "hello"
def main(param=A):
param.static_method_A()
staticメソッド –
のpython docs(http://docs.python.org/library/functions.html#staticmethod)にリンクします。不明ですが、musicfreakの回答や鉱山のクレジットを請求しないでください。私の投稿があなたがその方法でコメントした唯一のものだったなら、私はそれを放棄したいと思います。私は誰もコピーしていないことを知っている私の答えが十分であると確信しています。しかし、音楽フレーズはSOの初心者です。それ以外のユーザーにとっては、あなたはより良くなる必要があります。あなたをコピーすることを間違って非難しているのは、あなた自身もあまりにも高く考えているだけです。:-P –
@Chrisそのちょっとしたことでも、あなたとmusicfreakは基本的に「はい」と答えたコンテンツレスの回答がありました。その後、1分後に静的メソッドの回答があったとき、私はあなたと同じ答えを持つように変更しました。 – Unknown
あなたは(@staticmethod
デコレータに注意)次の操作を行うことができるはずです。
class A:
@staticmethod
def static_method_A():
print "hello"
def main(param=A):
param.static_method_A()
ウェイが私の答えに変更します。 – Unknown
いいえ、私の答えはあなたに基づいていません。しかし、私は最初のショットに入るために1文の答えを書いてから5分間の猶予期間内にそれを広げていくという有罪です。 –
これは先日私に同じゴミを与えていたものと同じUnknownです...私は思慮深い答えを書いて誰かを助け、他の人が投稿しているものに注意を払うことさえなかった。私は彼に同情+1を与えましたが、今は残念です。私は誰もが評判が高すぎてお互いを助けようとするのを止める必要があると思う。 – Tom