簡體   English   中英

Python-修改全局變量

[英]Python - modify a global variable

我正在使用python創建應用程序。 我有兩個不同的類,並且正在使用全局變量。 我想做的是這樣的

globvar = 0

class one:
  global globvar
  def __init__()
    ...
  def func1()
    ...
    globvar = 1

class two:
  global globvar
  def __init__()
    ...
  def func2()
    ...
    print globvar  # I want to print 1 if I use func1

我做過類似的事情,但func2從不打印1,而只打印0。所以問題是...可以通過不同的類更改全局變量嗎?

您的全局聲明在錯誤的位置; 它必須在您分配給變量的位置,即在func1內部。

也就是說,有一個更好的方法可以解決此問題,而根本不使用global:將globvar基類的一個類屬性,一個和兩個都繼承自該基類。

class Base(object):
    globvar = 0

class One(Base):
    def func1(self):
        self.__class__.globvar = 1

class Two(Base):
    def func2(self):
        print self.globvar

(請注意,在func1您需要通過self.__class進行分配,但在func2您可以直接在self上進行訪問,因為如果Python在實例上找不到它,則會退回到類作用域。)

暫無
暫無

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

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