中易网

python中访问限制的属性怎么访问

答案:2  悬赏:80  
解决时间 2021-03-17 16:13
python中访问限制的属性怎么访问
最佳答案
"方法中的属性"这个说法有点不清楚。。 类的"属性"指的是类的成员变量,类的实例可以使用类的属性。 类的“方法”指的是类的成员函数;方法既可以调用类的属性,也可以定义自己的局部变量。方法的局部变量不能被方法以外的任何函数调用。
全部回答
因为python支持动态属性绑定,当你执行a.__name = "lisi"相当于临时添加了一个__name属性,你不光可以执行a.__name = "lisi",还可以执行a.gender = '1', a.level = 1等等,这些都是一样的,只不过恰好,你添加的属性跟私有属性重名了。 class a:     def __init__(self):         self.__name = 'a'         self.age = 10 a = a() try:     print(a.__name) # 没有输出     print(a._a__name) #输出a except:     pass a.__name = 'b' print(a.__name) print(a.__dir__()) # 输出 a b ['__gt__', '__new__', '__weakref__', '__init__', '__setattr__', '__repr__', '__class__', '__eq__', '__dir__', '__delattr__', '__ge__', '__dict__', '__str__', '__subclasshook__', 'age', '__le__', '__getattribute__', '__module__', '__reduce__', '__format__', '__ne__', '__hash__', '__doc__', '_a__name', '__sizeof__', '__lt__', '__name', '__reduce_ex__'] 你会发现输出a的所有属性的时候,会有两个__name,_a__name就是你定义的私有属性,python内部会将它的属性名给改成这样,所以你第一次调用的时候会报错,但是你其实是可以用a._a__name的方式获得。而另外一个__name则是你动态绑定的属性
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
福建福州有什么汽修学校
饭盒放在背包里面没有汤的饭会洒出来吗?
甘肃必胜教育咨询有限公司地址在什么地方,想
文安到北戴河发顺丰快递什么时候到
会展概论
赣州什么单位福利较好
晚上10点半到深圳宝安机场还有没有大巴?我要
重庆大学城的莲花湖集体游玩需要多少费用?附
台式电脑有几种上网的方法
中央电视7台晚上有个榨油机的广告,
红军路地址在哪,我要去那里办事
大家请问在股票帐户里买基金,可以当天买卖吗
板栗饼好吃吗?要怎么做啊?
咖啡厅吧台什么饮料好喝,要好看点的。做法写
武动乾坤手游太卡了怎么办 多种方法解决卡顿
推荐资讯
有在广洲做服装生意的吗?觉得现在做服装生意
正压送风旁通阀工作电压
我有俩张建设银行信用卡被封一张另外一张还可
大1匹小天鹅空调设置26度24小时耗电多少
窗帘搭配技巧有哪些 打造一个温馨浪漫的家
在苏州哪里有卖工业酒精的?
不锈钢平垫圈M6厚度多少
女生突然3天不理我了!怎么回事,怎么办?
2013年七月份毕业的土木工程可以自己报考2015
方特游乐园里面有蹦极吗?
欢乐购购物中心府河星城店(东北门)地址有知道
群胜村地址在什么地方,想过去办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?