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

Python类UML标注访问修饰符是否规范?变量命名规则咨询

Python UML访问修饰符与变量命名规范解答

关于UML中标注public/private/protected是否为标准做法

当然是标准做法!UML本身就定义了+(public)、-(private)、#(protected)这三种访问修饰符的标注规则,用来明确类成员的可见性。

针对Python代码的UML建模,行业里通常会把Python的命名约定和UML的修饰符对应起来:

  • 无下划线的公共成员 → UML标注+,比如你例子里的+name_of_shop: str
  • 单下划线开头的成员(Python约定的“内部使用”,protected)→ UML标注#
  • 双下划线开头的成员(Python的名称修饰,private)→ UML标注-,比如你提到的-n: int

这种标注能清晰传递代码的设计意图,不管是自己维护还是团队协作,都是很实用的标准操作。

关于“内部变量用双下划线开头是否符合标准”

这里要区分Python里两种下划线命名的不同意图:

  • 单下划线_var:这是Python社区的通用约定,用来表示“这个变量/方法是内部实现细节,外部代码不要直接访问或依赖”。它没有强制的访问限制,只是一种“君子协定”,适合大多数仅需标识内部使用的场景。
  • 双下划线__var:这会触发Python的名称修饰机制,Python会把它重命名为_ClassName__var,目的是避免子类意外覆盖父类的成员,或者外部代码不小心修改到它。它比单下划线的约束更强,但本质上还是可以通过修改后的名称访问,并非真正的“私有”。

所以如果你的变量只是“不会在函数外部被访问”,更符合Python标准的做法是用单下划线开头。双下划线更适合你需要严格防止子类或外部误修改的场景,而不是普通的内部使用标识。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:40:03