2012-04-18 14 views
-5

可能性の重複:
How do I use method overloading in Python?オーバーライドメソッド

私はPythonプログラミングに新しいです

が、私は同じ名前を持つ複数のメソッドを書くことが好きですが、なぜのみ最近呼び出されたメソッドは、以下のようにコードを出力します

class A:  
    def mymethod(self):  
     print 'first method'  
    def mymethod(self):  
     print 'second method' 
ob=A() 
ob.mymethod() 

o/pa S second method

ここで議論 Mukthyar

+2

同じ名前のメソッドを複数持つことはできません。私たちはちょうどそれに答えました。それがあなたがやろうとしていることでない場合は、質問をより明確に記述してください。 – agf

+3

Wow Mukthyar。あなたが知っておくべきことは...トイレにいる間でも、これらの達人はすべての投稿を読んでいます。誰でもここで重複した質問を隠すことはできません。 – jdi

+0

@agf、これは最初の質問よりも悪いようです - ここではメソッドにも異なるシグネチャがありません –

答えて

1

を..私は同じ時間に同じ名前の2つのメソッドを呼び出すcalling.canこのPythonのメソッドの背後にあるメカニズムが何であるかを教えて

感謝してください:

Python function overloading

Pythonでは、関数は名前で参照されます。引数の型は名前の一部ではなく、どこでも宣言されません。この関数は任意の型の引数で呼び出すことができます。

「ダックタイピング」を使用して関数を記述すると、通常、ある関数が必要とするすべての異なるジョブを実行できるようになります。引数の数が異なる関数を呼び出すことができるように、デフォルト値の引数もよく使用されます。ここで

は簡単な例です。この例では

class A(object): 
    def __init__(self, value=0.0): 
     self.value = float(value) 

a = A() # a.value == 0.0 
b = A(2) # b.value == 2.0 
c = A('3') # c.value = 3.0 
d = A(None) # raises TypeError because None does not convert to float 

、我々は、float値を求めています。しかし、我々は議論のタイプをテストしていない。私たちはただそれを浮かせるよう強制し、もしうまくいくなら、私たちは満足しています。型が間違っていると、Pythonは例外を発生させます。

+0

私は重複してリンクした彼の以前の質問を見てください。私たちはすでに彼にこれを説明しました。 – agf

+0

@agf、うわー、彼は30分の間隔で同じ質問を二度聞いた? – steveha

+0

それはそうです。私は実際にはかなり深刻な言語の壁があると思う。 – agf

関連する問題