假设我有以下课程:
class MyClass(object):
def __init__(self):
...
还有这个功能:
def foo(my_class):
...
我的问题是:确保my_class
参数是MyClass()
的实例的pythonic方式是什么?
答案 0 :(得分:3)
使用assert
和isinstance
:
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的类型提示,如评论部分所述。否则,如果真的非常需要,请专门检查类型。