2016-10-27 4 views
0

Ich bin brandneu in Python und komme aus einem C/C++ - Hintergrund. Ich bin auf der Suche nach einer Möglichkeit, Funktionsaufrufe basierend auf den Daten zu unterscheiden, die übergeben werden.Python-Funktionseingaben mit unterschiedlichen Datentypen

Ein Beispiel:

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

Nun lassen Sie uns sagen, ich möchte in der Lage sein, eine Instanz von RomanNumeral zu initialisieren entweder mit einem int oder einer Zeichenkette (beispielsweise 11 oder XI). Wie wird das in Python gehandhabt?

Ich suche im Wesentlichen für diese C++ Äquivalent:

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

Benötige ich einen try Block um einige Code zu werfen und fangen, wenn ich Valueerror einen String gegeben habe?

Antwort

0

Python beschwert sich nicht über Typenkonflikt wie C++. Syntaktisch können Sie jeder Variablen einen beliebigen Datentyp zuweisen. Für Ihren Fall

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

Und in jedem Verfahren Sie es verwenden, können Sie:

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" 

Dies ist eine einfache Art und Weise Typen in Python zu behandeln

Verwandte Themen