python类中的_和__含义


1._的含义

在python的类中,没有真正的私有化,不管是方法还是属性,为了编程的需要,约定加了下划线 _ 的属性和方法不属于API,不应该在类的外面访问,也不会被from M import * 导入。下面的代码演示加了_ 的方法,以及在类外面对其的可访问性。

 

含_实际可以调用,只是不推荐

class A:
    def _test(self):
        print("a")

a = A()
#不推荐使用,但是可以使用 a._test()

 

2.__的含义

python中的__和一项称为name mangling的技术有关,name mangling (又叫name decoration命名修饰).在很多现代编程语言中,这一技术用来解决需要唯一名称而引起的问题,比如命名冲突/重

在类A中,__method方法其实由于name mangling技术的原因,变成了_A__method,所以在A中method方法返回的是_A__method,B作为A的子类,只重写了__method方法,并没有重写method方法,所以调用B中的method方法时,调用的还是_A__method方法

B作子类,实际继承的是_A__method方法,重写新的__method方法不会改变_A__method方法,只会创造_B__method

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM