6
在python中,我知道查找本地作用域變量比查找全局作用域變量要快得多。所以:Python:類方法中的類屬性是否等價於局部變量?
a = 4
def function()
for x in range(10000):
<do something with 'a'>
慢於
def function()
a = 4
for x in range(10000):
<do something with 'a'>
所以,當我看到一個類定義,屬性和方法:
class Classy(object):
def __init__(self, attribute1):
self.attribute1 = attribute1
self.attribute2 = 4
def method(self):
for x in range(10000):
<do something with self.attribute1 and self.attribute2>
是我使用self.attribute的更喜歡我的第一個或第二個功能?如果我分類Classy,並嘗試從我的子類中的方法訪問attribute2呢?
雖然我一般對這個問題的答案很好奇,但是我問這個問題的真正原因是因爲我有一些常量幾乎肯定會被一種方法使用,我不確定我是否應該在該方法內或在init內定義它們(以防我後來意識到它們需要在別處訪問)。由於這種可能性很小,我想我會在方法中對它們進行定義。謝謝。 – Wilduck 2010-06-30 16:13:06