【发布时间】:2021-06-03 04:58:11
【问题描述】:
这里是 Python 新手!
下面的例子是关于实例化一个类然后为实例分配一个名称与实例化而不分配的区别。
在示例的最后三行中,首先在实例(my_city)上调用该方法,然后在没有实例的情况下调用该方法。所以:
- 有什么区别?
- 什么时候认为这种方法有用或更可取?
- 既然 Python 中的一切都是对象,那么 what 或 where 是最后一行中的对象吗?
class City:
def __init__(self, name):
self.name = name
def show_city_name(self):
print(self.name)
my_city = City("Tokyo")
my_city.show_city_name()
City("Tokyo").show_city_name()
【问题讨论】:
-
最后一行是用实例调用的,只是你没有将实例分配给变量。
-
执行此代码可能有助于查看实际发生的情况,尤其是临时创建的无数对象。
-
my_city不是实例/对象 - 它是一个引用对象的名称。表达式City("Tokyo")创建一个对象,无论它是被分配、使用还是丢弃。 -
@MisterMiyagi 所以只是为了确认一下,一旦方法调用完成,对象就会被创建并丢弃。我知道(技术上)它可能不会立即被垃圾收集,但从概念上讲,它在此代码运行中的目的已经结束。是的,我将名称与实际对象混淆了,但现在区别很明显了。谢谢大家。
标签: python class instantiation identifier