1
ilucio 2018-05-04 14:54:08 +08:00
感觉问的应该是类的知识。在类里定义一个方法,会在堆上开辟内存生成一个函数对象,并把这个对象名放在类的__dict__中。
class apple(object): def price (self): print '2' def weight (self): print '400g' print apple.__dict__ {'__module__': '__main__', 'weight': <function weight at 0x03868DB0>, 'price': <function price at 0x03868D70>, '__dict__': <attribute '__dict__' of 'apple' objects>, '__weakref__': <attribute '__weakref__' of 'apple' objects>, '__doc__': None} 可见方法 price 和 weight 分别在堆上的不同位置。 |
2
wellsc OP @ilucio #1 我跟面试官确认过的,他说的对象是指类的实例,对象的方法是指 实例的 methods,刚开始我也答的是 __dict__ ,但是他说 dict 只是把对象属性返回出来了,而没有说清楚对象方法是怎么存储的。。。
|