抱歉,这是一个非常基本的问题,但我只是想知道什么时候需要self._在方法中添加变量声明?每次我在方法中声明一个变量时,我应该用self._included 来声明它吗?有什么情况我不应该这样做吗?
例如,这些方法中的哪些是有效的(对于某些假设类):
def thing_counter(self, thing):
length_of_thing = len(thing)
return length_of_thing
Run Code Online (Sandbox Code Playgroud)
或者
def thing_counter(self, thing):
self._length_of_thing = len(thing)
return self._length_of_thing
Run Code Online (Sandbox Code Playgroud)
两者都有效,但哪个是严格正确的?
我知道这里并不真正需要变量声明,我只是想使用一个简单的例子。
干杯!
jco*_*ens 11
两者工作相同。
在第一个版本中,length_of_thing将在函数内部创建,并将return副本返回给调用者。length_of_thing回归后本身将不复存在。
在第二个中,self._length_of_thing将被创建,不是在函数内部,而是在类的实例内部。结果是所有其他方法都可以看到它。并且return仍然返回一个副本。所以这个版本可能会使用更多的内存,因为变量self._length_of_thing在类的实例被销毁之前一直保持活动状态。
| 归档时间: |
|
| 查看次数: |
8792 次 |
| 最近记录: |