具有不同数据类型的Python函数输入

时间:2016-10-27 03:40:42

标签: function python-3.x

我是Python的新手,来自C / C ++背景。我正在寻找一种根据传递的数据区分函数调用的方法。

一个例子:

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

现在,让我们说我希望能够用int或字符串(例如11或XI)初始化RomanNumeral的实例。如何在Python中处理它?<​​/ p>

我基本上在寻找这个C ++等价物:

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

如果我给了一个字符串,是否必须在某些代码周围抛出try块并捕获ValueError?

1 个答案:

答案 0 :(得分: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中处理类型的简单方法