我已经在Python中定义了一些全局参数(也可以从其他文件访问),我想在定义它们的类中对它们进行更改。我经常读到这样做的一种方法是在定义函数中的变量时使用“全局”。然而,我也经常读到,基本上应该避免“全球化”,因为这不是一种好的风格。现在我的问题是我还有什么机会改变我的变量?当只是将它们作为参数传递给函数时(这也是一个建议),它们的值保持不变
这是我的代码:
from random import random
numberOfBuildings = 10
numberOfVehicles = 10
useMonteCarloMethodForScenarioCreation = True
def monteCarloScenarioGeneration(numberOfBuildings, numberOfVehicles):
numberOfBuildings_MonteCarlo = int( numberOfBuildings *random() *2 + 1)
numberOfVehicles_MonteCarlo = int(numberOfVehicles *random() *2 + 1)
if useMonteCarloMethodForScenarioCreation ==True:
numberOfBuildings = numberOfBuildings_MonteCarlo
numberOfVehicles = numberOfVehicles_MonteCarlo
monteCarloScenarioGeneration(numberOfBuildings, numberOfVehicles)
print('numberOfBuildings: ', numberOfBuildings)
print('numberOfVehicles: ', numberOfVehicles)
调用monteCarloScenarioGeneration函数时,全局变量numberOfBuildings和numberOfVehicles的值不变。它们在初始化后保持相同的值(10)。如何在不使用关键字global的情况下更改全局变量?如有任何意见,我将不胜感激
如果我没有看错的话,您应该可以使用
return
来更改函数外部的变量作为函数的最后一行,将
return numberOfBuildings, numberOfVehicles
然后在调用函数时
numberOfBuildings, numberOfVehicles = monteCarloScenarioGeneration(numberOfBuildings, numberOfVehicles)
相关问题 更多 >
编程相关推荐