2016-10-27 10 views
0

私はPythonの初心者で、C/C++のバックグラウンドを使用しています。私は、渡されているデータに基づいて関数呼び出しを区別する方法を探しています。さまざまなデータ型を持つPython関数の入力

例:

class RomanNumeral(): 
    def __init__(self, value): 
     # Assign stuff 

さて、私はintまたは文字列(例えば、11またはXI)のいずれかでRomanNumeralのインスタンスを初期化できるようにしたいと思いましょう。これはPythonでどのように扱われますか?

私は基本的に、このC++と同等を探しています:

RomanNumeral(); 
RomanNumeral(int value); 
RomanNumeral(string value); 

は、私はいくつかのコードの周りにtryブロックを投げると、私は、文字列を与えられていた場合にはValueErrorをキャッチする必要がありますか?

答えて

0

PythonはC++のような型の不一致については不平を言っていません。構文的には、任意のデータ型を任意の変数に割り当てることができます。あなたのケースでは、

class RomanNumeral: 
    def __init__(self, value): 
     self.value = value 

そして、あなたはそれを使用するいずれかの方法で

、次のことができます。

def some_method(self): 
     if isinstance(self.value, int): 
      print "Value is a number" 
     elif isinstance(self.value, str): 
      print "Value is a Roman Number" 

これは、Python

でタイプを処理するための簡単な方法です。
関連する問題