python声明一个全局变量,且不可更改
时间: 2023-06-25 17:05:28 浏览: 170
在 Python 中,可以使用 `global` 关键字声明全局变量。但是,如果要使这个全局变量不可更改,可以使用 `tuple` 或 `frozenset` 类型来存储变量。因为这些类型的对象是不可变的,所以它们不能被修改。
以下是使用 `frozenset` 存储全局变量的示例代码:
```python
GLOBAL_VAR = frozenset([1, 2, 3])
def my_func():
print(GLOBAL_VAR)
my_func()
```
在上面的代码中,`GLOBAL_VAR` 被声明为全局变量,并且使用 `frozenset` 存储。即使在 `my_func` 函数中尝试更改 `GLOBAL_VAR` 的值,也会引发一个错误。
如果你需要在程序中共享数据,但又不希望数据被修改,那么使用不可变的数据类型是一个好的选择。
相关问题
python声明一个全局字符串变量,不可更改
在 Python 中,字符串是不可变类型,即不能更改其值。如果你要声明一个全局字符串变量,可以直接在模块中定义一个变量,如下所示:
```python
MY_STRING = "Hello World"
```
这个变量可以在模块中的任何函数或类中使用,但是不能在函数或类中更改它的值。如果你尝试更改它的值,Python 会引发 TypeError 异常。
如果你希望将字符串作为常量来使用,可以使用 `const` 关键字(在 Python 3.8 中引入),如下所示:
```python
from typing import final
@final
class MyConstants:
MY_STRING: str = "Hello World"
```
这个类中定义的 `MY_STRING` 变量是不可更改的常量,而且它的类型为字符串。你可以在模块中的任何地方使用它,但是不能更改它的值。
python设置一个全局变量
在Python中,要设置一个全局变量,你可以使用global关键字在函数内部声明一个变量,并将其标记为全局变量。这样,在函数外部也可以访问和修改这个变量。
下面是一个示例:
```python
def set_global_variable():
global my_variable
my_variable = 10
set_global_variable()
print(my_variable) # 输出 10
```
在上面的例子中,我们在`set_global_variable`函数内部使用`global`关键字声明了一个名为`my_variable`的变量,并将其赋值为10。然后,我们在函数外部访问并打印了`my_variable`的值,它仍然是10。
请注意,在使用全局变量时要谨慎,因为它们可以被任何函数修改,这可能导致不可预测的行为。