簡體   English   中英

將類實例變量分配給Python方法中的局部變量

[英]Assign a class instance variable to a local variable within a method in Python

可以將類實例變量分配給方法中的局部變量,例如:

class Foo(object):
    def __init__(self):
        self.bar = 'bar'

    def baz(self):
        # assign instance variable to local variable with a method
        bar = self.bar

        # do work with local variable
        bar = "qux"

        # update value of instance variable
        self.bar = bar
        return self

這樣,就可以在Foo.baz()范圍內引用bar而不是self.bar

這樣做是錯誤的還是Unpythonic?

這樣做非常好。 您可能會爭辯說您不需要這樣做(至少在您的示例中,如果您不使用局部變量,則可以將方法減少到兩行),但是這樣做確實沒有任何問題。

有某些結果可能最終使一種或另一種方法更可取:

  • 創建一個局部變量顯然會創建另一個局部變量
  • 為此,擁有一個臨時的局部變量需要更多代碼,從而增加了方法的整體復雜性
  • 訪問局部變量比訪問實例屬性
  • 僅更新實例屬性的一點就使方法更接近原子性(雖然它不是純粹的原子性),並且避免了屬性上的中間值
  • 同樣,如果訪問或修改self.bar有副作用,那么最好只執行一次,而不是多次觸發它們。

所有這些影響通常都是極小的, 根本沒關系 但是它們在那里, 也許它們可能與您息息相關。 在此之前,請使用最舒適的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM