在函数

时间:2015-08-20 18:50:43

标签: python function class python-2.7 instanceof

Python新手,请耐心等待......

给定以下函数(并假设此处引用的类已正确创建):

def next_scene(scene_name):
    print scene_name
    scenes = {'Chip_in_the_car': ChipCar(), 'Chip_in_the_studio': ChipInStudio(), 'Chip_mom_house': ChipMomHouse(), 'Chip_at_rehearsal': SickFuckingPuppies(), 'Death': Death()}

    for key, value in scenes.iteritems():
        if scene_name == key:
            print value
            return value

好的,那么value返回的内容如下:

<__main__.ChipCar object at 0x104503390>

这是否意味着ChipCar类的实例已被实例化,或者只是将类作为对象放在内存中?如何使用此函数创建该ChipCar类的实例?

感谢您的任何见解(确定这是一个noob问题)。

1 个答案:

答案 0 :(得分:1)

是的,你有一个类的实例。您正在查看实例的默认__repr__返回值,其中包括模块名称,类名称以及以十六进制表示的对象的id()值。

您可以为您的类提供自定义__repr__方法来更改该文本,它应该返回一个在调试时很有用的字符串。例如:

>>> class ChipCar(object):
...     def __repr__(self):
...         return '{}() object, id => 0x{:x}'.format(type(self).__name__, id(self))
... 
>>> ChipCar()
ChipCar() object, id => 0x1046c33d0