如何与类名称的字符串进行比较(如变量看起来像这样),<_io.TextIOWrapper name='/etc/passwd' mode='r' encoding='UTF-8'>
然后如何检查该对象?我该如何专门测试呢?这是我所做的但失败了。:(
>>> a = open('/etc/passwd')
a
<_io.TextIOWrapper name='/etc/passwd' mode='r' encoding='UTF-8'>
>>> type(a)
<class '_io.TextIOWrapper'>
>>> a.__class__
<class '_io.TextIOWrapper'>
>>> a.__class__ == 'io.TextIOWrapper'
False
>>> a.__class__ == '_io.TextIOWrapper'
False
>>>
我如何获得类似“ _io.TextIOWrapper”的字符串?如果无法获取字符串,那么如果类名是_io.TextIOWrapper,我该如何进行比较,否则执行此操作。
您可以使用isinstance
方法检查
>>> a = open('/etc/passwd')
>>> import io
>>> isinstance(a, io.TextIOWrapper)
True
如果出于某些奇怪的原因而绝对需要按String进行比较,则可以执行以下操作:
str(a.__class__) == "<class '_io.TextIOWrapper'>"
但是除非有充分的理由这样做,否则绝对不能这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句