Python:在对象方法声明中对变量进行类型转换?

时间:2015-05-14 16:55:50

标签: python class methods

我是Python的新手,并且有一个类如下:

Route::patterns([
    'uuid1' => '^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$',
    'uuid2' => '^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$',
]);

对于这个类,$pattern = 'uuid regex'; Route::patterns([ 'uuid1' => $pattern, 'uuid2' => $pattern, ]); 是包含数据和一些方法的另一个对象,我希望能够在class myclass: var1 = 0 var2 = 1 var3 = 2 def function(self, x): x.method(...yadda...) 的实例中调用这些方法。有没有办法在这里指定x作为另一种类型的对象?例如,通常会使用以下内容来定义对象(来自名为myclass的导入文件):

x

对于上面代码中的对象classfile,我是否可以要求它具有特定的对象类型,无论是内置对象还是我定义的对象?你会如何指定这个?

我希望代码抛出错误或绕过任何不是所需类型的对象,最好是在我开始尝试调用其中的方法之前(即newObj = classfile.myClass() )。

1 个答案:

答案 0 :(得分:2)

更好的做法是实施" duck typing。所以在你的情况下

def function(self, x):
    try:
        x.method(... yada ...)
    except AttributeError:
        raise MyAPIError