![](/img/trans.png)
[英]How to calculate variable declared in a method from inside python class function
[英]python - how to reference Class declared inside a function
我正在使用的第三方庫中有一個 Class。
def funcA(base):
class ClassA(base):
def __init__(self, obj):
....
我有一個 ClassA a
實例
type(a)
# prints <class 'path.to.module.funcA.<locals>.ClassA'>
如何檢查變量是否是 ClassA 的實例? 我不確定如何引用 ClassA,因為它位於 function....
import module
isinstance(a, module.funcA.ClassA?) <--- how to reference ClassA?
如果您無法更改funcA
本身,因為它不在您自己的代碼中,那么測試實例的一種巧妙方法是給它一個超類並測試超類。 用一個包裝的版本替換funcA
,它使用 class 調用原始funcA
,擴展base
和您自己的ClassABase
:
import functools
class ClassABase:
pass
def funcAwrapper(f):
@functools.wraps(f)
def wrapper(base):
class WrappedBase(base, ClassABase):
pass
return f(WrappedBase)
return wrapper
funcA = funcAwrapper(funcA)
現在funcA
創建的所有ClassA
實例也將是您自己的ClassABase
的實例,因此您可以測試isinstance(obj, ClassABase)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.