我正在使用 Python 2.x,我想知道是否有办法判断变量是否是新型类?我知道如果它是一个老式的课程,我可以做以下事情来找出答案。
import types
class oldclass:
pass
def test():
o = oldclass()
if type(o) is types.InstanceType:
print 'Is old-style'
else:
print 'Is NOT old-style'
但是我找不到任何适用于新式课程的东西。我发现了这个问题,但建议的解决方案似乎没有按预期工作,因为简单的值被标识为类。
import inspect
def newclass(object):
pass
def test():
n = newclass()
if inspect.isclass(n):
print 'Is class'
else:
print 'Is NOT class'
if inspect.isclass(type(n)):
print 'Is class'
else:
print 'Is NOT class'
if inspect.isclass(type(1)):
print 'Is class'
else:
print 'Is NOT class'
if isinstance(n, object):
print 'Is class'
else:
print 'Is NOT class'
if isinstance(1, object):
print 'Is class'
else:
print 'Is NOT class'
那么有没有办法做这样的事情呢?或者 Python 中的所有东西都只是一个类,没有办法解决这个问题?