是否可以在 python 中拥有受保护的类变量或方法? [复制]

Posted

技术标签:

【中文标题】是否可以在 python 中拥有受保护的类变量或方法? [复制]【英文标题】:Is it possible to have protected class variables or methods in python? [duplicate] 【发布时间】:2019-07-19 11:17:33 【问题描述】:

是否可以在 python 中拥有受保护的类变量或方法?我可以看看这种用法的例子吗?

【问题讨论】:

您可以在变量名和方法的开头使用下划线和双下划线来模仿。只是一个约定 Python 类不支持访问修饰符。 【参考方案1】:

简短的回答是“不”。有一些约定和良好的风格允许您表明某人不应该修改这些变量或从类外部调用这些方法,但是没有办法严格执行这一点。 Python 中基本上没有严格强制执行的私有或受保护变量或方法。

参见this 教程。

【讨论】:

IOW python 没有访问修饰符.【参考方案2】:

不,这是不可能的。人们通常使用下划线作为私有成员的约定。

这个关于一般python约定的问题可以提供更多信息。

Python "private" function coding convention

基本上在你的会员名前加上一个“_”会向外界表明它是私人的。

not_private = 0
_private = 1

【讨论】:

以上是关于是否可以在 python 中拥有受保护的类变量或方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

设置为默认类型时如何测试私有/受保护的类变量

是否可以模拟受保护的属性和方法

将受保护的 Objective-C 实例变量公开给子类

如何在 swift 中声明一个“受保护”变量

PHP访问控制

我可以/如何...在 PHP 中的类之外调用受保护的函数