阿里云大学人工智能学前小测验-Python測试
A. 标识符开头无下划线该变量或方法为公有权限
B. 标识符开头双下划线,该变量或方法为私有权限
C. 标识符开头单下划线该变量或方法為保护权限
关于python中访问权限建议看一下这篇博文,毕竟以双下划线开头的数据成员是不是一定就无法从外部访问呢其实也不是!本质上,从内部机制原理讲外部不能直接访问__age是因为Python解释器对外把__age变量改成了_People__age,也就是_类名__age(类名前是一个下划线)因此,投机取巧的话伱可以通过_ People__age在类的外部访问__age变量。即Python的私有成员和访问限制机制是“假”的没有从语法层面彻底限制对私有成员的访问。
Python中变量(函数)的訪问权限与变量(函数)的名字有关
其中单下划线开头,则不能通过import * 导入;双下划线开头(且少于两个下划线结尾),则无法直接访问但是可以通过_classname__object访问。
名字修饰是现代计算机程序设计语言的编译器用于解决由于程序实体的名字必须唯一而导致的问题的一种技术
Python语言的名字修飾用于类的“私有”(private)成员。这种类成员的名字由前导双下划线开头并且后缀下划线不能多于一个。例如__thing将被名字修饰___thing和__thing_同样也会被名字修饰,但是__thing__和__thing___就不会被名字修饰Python运行时库不限制访问这些成员,名字修饰只是用来避免拥有同名成员的派生类发生名字冲突