You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python模块中直接定义的函数、变量属性及术语相关技术咨询

Python模块级对象与类变量相关问题解答

一、模块级函数和变量的性质

直接定义在.py文件(模块)中的函数和变量不属于"静态"范畴,它们的官方术语是模块级对象,隶属于所在模块的命名空间:

  • 这类对象的生命周期和模块绑定:模块被导入时加载,直到Python解释器退出才会被回收。
  • 任何导入该模块的代码都可以通过模块名.变量名/函数名访问,也可通过from 模块名 import ...直接引入使用。

举个简单例子:

# demo.py
module_str = "这是模块级变量"
def module_print():
    print("这是模块级函数")

在其他文件中导入后即可直接调用:

import demo
print(demo.module_str)  # 输出:这是模块级变量
demo.module_print()     # 输出:这是模块级函数

二、类变量与"静态变量"的关系

在Python中没有独立的"static variables"(静态变量)术语,开发者常说的"静态变量"其实就是class variables(类变量),二者指向同一概念:

  • 类变量是定义在类内部、所有方法之外的变量,属于类本身,会被该类的所有实例共享。
  • 它和实例变量的核心区别是:类变量存储在类的命名空间中,修改类变量会影响所有未自行绑定同名变量的实例;而实例变量存储在单个实例的命名空间中,仅对当前实例生效。

示例代码:

class Counter:
    count = 0  # 这就是类变量(常被称为"静态变量")

    def __init__(self):
        Counter.count += 1  # 修改类变量

# 创建实例
c1 = Counter()
c2 = Counter()
print(Counter.count)  # 输出:2,所有实例共享这个值

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 15:03:50