程序设计-更新全局变量值



假设脚本中有一个全局变量pi=3.14。在大多数情况下,pi在脚本中的函数和类中被用作3.14。但是,用户有时可能需要更改该值。用户可以在不修改脚本的情况下更改脚本中pi的值吗?(用户不想将圆周率作为参数传递给函数。(

例如,用户在另一个脚本或Jupyter笔记本中定义自己的pi,并导入相关的函数和类。然后,函数和类将使用新的pi。从软件设计的角度来看,有没有一个好的方法可以做到这一点?

提前谢谢!

通常情况下,如果不是完全必要,则在pythonbuiltins中设置全局变量是一种糟糕的做法。

我会这么做:

# foo_module.constants.py

class Constants:
# set them as class variables
pi: float = 3.14
phi: float = 1.61

您的函数和类:

# foo_module.my_application
from .constants import Constants

def circle_area(r):
return Constants.pi * (r ** 2)

class Circumfator:
def __init__(self):
self.pi = Constants.pi
def get_circumference(self, r):
return 2 * r * self.pi

用户感知:

from foo_package.my_application import *

circle_area(10)  # returns 314.0
Circumfator().get_circumference(50)  # returns 314.0
# user changes pi
Constants.pi = 1
circle_area(10)  # returns 100
Circumfator().get_circumference(50)  # returns 100

最新更新