我对课程或OOP不是很有经验,
而且我对我得到的一些结果感到困惑。
我正在尝试在我创建的类上使用type()
。
class TestClass:
pass
my_class = TestClass()
print type(my_class)
上面的代码返回
<type: 'instance'>
根据我的理解my_class
应该初始化为TestClass
对象..对吗?为什么不是输出TestClass
。另外,如果可能的话,我需要更改什么来获得此结果?
答案 0 :(得分:0)
如果你想让TestClass成为一个对象,你必须像这样指定它
class TestClass(object):
pass
答案 1 :(得分:0)
类和实例有两种形式:旧式(或经典)和 新型
在Python 2.1之前,旧式类是唯一可用的风格 用户。 (旧式)类的概念与概念无关 类型:如果
x
是旧式类的实例,那么x.__class__
指定x
的类,但type(x)
始终为<type 'instance'>
。 这反映了所有旧式实例的独立性 他们的类,用一个内置类型实现,称为 实例
如果不从object
继承,则会创建一个旧式类,因此type(my_class)
的行为与此类似。
继承object
,你的问题就会消失:
class TestClass(object):
pass
在Python 3中,所有类都是新式的类,这很好。