PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] 隐藏类别中的属性
楼主:
icetofux
2016-10-14 10:38:52
我在python 3.5.1的环境下做了一个简单的测试,想要做到类似其他程式语言中
"private"的功能:
test.py
1 class StateMachine:
2 def __init__(self):
3 self.__state = "IDLE"
4
5 def state(self):
6 return (self.__state)
7
8 sm = StateMachine()
9 print(sm.state())
10 sm.__state = "MOV"
11 print(sm.state())
输出结果如下:
c:\python test.py
IDLE
IDLE
作者: aweimeow (喵喵喵喵 ヽ( ・∀・)ノ)
2016-10-14 11:11:00
sm._StateMachine__state = "MOV"这样就可以改了,只是很不好 XD然后 sm.__state / sm._StateMachine__state 不一样所以原本放 sm.__state = "MOV" 的话再加一行 print(sm.__state) 就能看到 MOV
楼主:
icetofux
2016-10-14 11:34:00
好像有点想通了,所以第10行的sm.__state = "MOV"只是产生一个全新的物件叫做sm.__state,然后对它赋值"MOV"对吗?
作者: aweimeow (喵喵喵喵 ヽ( ・∀・)ノ)
2016-10-14 11:40:00
就是帮 sm 这个物件加上一个 __state 属性并赋值可以 print(dir(sm)) 会发现他多出属性了 XD
作者: qiubite31 (so...?)
2016-10-15 10:52:00
要实作类似private属性,用property来作setter和getter应该比较好
http://www.programiz.com/python-programming/propert
y拍谢我缩一下
https://goo.gl/Z4McqF
继续阅读
Re: [问题] DataFrame挑选特定值后的处理
IMPOSSIBLEr
[问题] DataFrame挑选特定值后的处理
jimmy15923
[问题] django的csrf_token
vanchy
[问题]已解决 寻找文章匹配的字出现次数
Dyewiz
[问题] jupyter 出现in[*]不能执行
hesitate82
[问题] print UnicodeEncodeError: 'cp950'
ggirls
[问题]关于 python3 Request用法的请教??
processior
[问题] 输出问题
ssd860505da
thread问题
dinoptt1993
[问题] importerror tkinter
december208
Links
booklink
Contact Us: admin [ a t ] ucptt.com