Pythonic方法确保参数是类的实例

时间:2018-02-07 09:59:06

标签: python

假设我有以下课程:

class MyClass(object):
    def __init__(self):
    ...

还有这个功能:

def foo(my_class):
    ...

我的问题是:确保my_class参数是MyClass()的实例的pythonic方式是什么?

5 个答案:

答案 0 :(得分:3)

使用assertisinstance

assert isinstance(my_class, MyClass)

如果my_class不是MyClass的实例,则会抛出异常。

答案 1 :(得分:3)

可能很简单,more help

isinstance(obj, MyClass)

答案 2 :(得分:1)

使用isinstance内置:

isinstance(my_class, MyClass)

希望它有所帮助。

答案 3 :(得分:1)

另一种方法是:

type(obj) is MyClass

Pythonic方式,当然:

isinstance(my_class, MyClass)

答案 4 :(得分:0)

保证的pythonic方式根本不是检查。让duck typing完成这项工作。或者您可以使用Python 3的类型提示,如评论部分所述。否则,如果真的非常需要,请专门检查类型。