python中单下划线(_)和双下划线(__)的特殊用法
函数使用单下划线_开头
使用单下划线(_)开头的函数_func不能被模块外部以:frommoduleimport*形式导入。
但可以用:frommoduleimport_func形式单独导入。
类属性和类方法使用单下划线_开头
_开头为保护类型的属性和方法,仅允许类内部和子类访问,类实例无法访问此属性和方法。
类属性和类方法使用双下划线__开头
__开头为私有类型属性和方法,仅允许类内部访问,类实例和派生类均不能访问此属性和方法。
所以双划线比单划线权限更严格。
补充说明
对于__开头的属性和方法如果派生类一定要访问,使用单下划线+基类名+双下划线开头的属性和方法的形式,
且双下划线开头的属性和方法后面最多只能以一个单下划线结束,否则也无法访问。
classBaseCls: def__init__(self,name,age,nick_name): self.name=name self.__nick_name_=nick_name#__nick_name后面最多以一个_结束,否则通过基类名混淆的方式也无法访问了。 self.age=age classSubCls(BaseCls): def__init__(self,name,age,addr,nick_name): super().__init__(name,age,nick_name) self.addr=addr self.a_nick_name=self._BaseCls__nick_name_
总结
以上所述是小编给大家介绍的python中单下划线(_)和双下划线(__)的特殊用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!