我的代碼中有一個導入的模塊。該模塊包含一個定義在其中的功能。該函數不返回任何值。在我的代碼中,我想訪問在該函數中聲明的變量。有沒有辦法做到這一點?導入類的函數中的訪問變量
編輯: 因此,OSS中有一個模塊正在生成語音序列。但語音序列變量不是全局的,函數也不返回語音序列。我想訪問我的插件中的語音序列。
我的代碼中有一個導入的模塊。該模塊包含一個定義在其中的功能。該函數不返回任何值。在我的代碼中,我想訪問在該函數中聲明的變量。有沒有辦法做到這一點?導入類的函數中的訪問變量
編輯: 因此,OSS中有一個模塊正在生成語音序列。但語音序列變量不是全局的,函數也不返回語音序列。我想訪問我的插件中的語音序列。
如果你的函數如下所示:
def function():
...
my_variable = "foo"
然後你就可以添加參數,這將迫使該變量要與正在返回任何東西一起返回。所以這個函數看起來像這樣。
def function(get_variable=False):
...
return_variable = "bar"
my_variable = "foo"
if get_variable:
return (my_variable, return_variable)
else:
return return_variable
,然後訪問它像這樣:
import module
my_variable, return_variable = module.function(get_variable=True)
你不需要這種破解的,如果你的函數不返回任何東西。只要讓它返回你想要的變量,並將它分配給你的主代碼範圍內的東西。
我已經知道了。但是,正如我所提到的那樣,這是一個開源軟件,我建立了一個插件,因爲它暫時不能進行更改。因此,這種黑客不可能工作? –
我不認爲有任何其他的方式來實現這一點..你仍然可以編輯源,以滿足您的需求,雖然.. –
我可以幫助你,如果你願意,只要告訴我哪個模塊,函數和變量你想:) –
聽起來像[XY問題](https://meta.stackexchange.com/a/66378)。你想達到什麼目的?請提供一個[最小,完整且可驗證的示例](https://stackoverflow.com/help/mcve) ,它重現了您的問題。 –
該函數的作用域中的變量?如果沒有對模塊或代碼的任何引用,很難說明,但是你不應該訪問函數範圍中定義的變量。 – cole
編輯,與問題。 –