[問題] 變數值可以動態引用嗎?

看板Python作者 (哥)時間5年前 (2019/04/06 07:53), 編輯推噓5(5015)
留言20則, 6人參與, 5年前最新討論串1/1
a = 1 b = a + 1 如何才有辦法讓b值隨a變動? 也就是之後若 a = 2 時 b的值變成3 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.232.141 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1554508401.A.448.html

04/06 08:24, 5年前 , 1F
若b因a而自動變化可能是採copy by reference
04/06 08:24, 1F

04/06 08:24, 5年前 , 2F
建議是在需要b的地方就直接給a+1
04/06 08:24, 2F

04/06 08:24, 5年前 , 3F
原因是
04/06 08:24, 3F

04/06 08:27, 5年前 , 4F
a可能因b的變化而被改變(指定新變數內容型別相同)
04/06 08:27, 4F

04/06 08:27, 5年前 , 5F
也可能不變(指定新變數內容型別不同) 會造成不穩定的結果
04/06 08:27, 5F

04/06 08:27, 5年前 , 6F

04/06 08:57, 5年前 , 7F
你覺得python有pointer嗎?
04/06 08:57, 7F

04/06 08:58, 5年前 , 8F
a = [1]
04/06 08:58, 8F

04/06 08:58, 5年前 , 9F
b = a
04/06 08:58, 9F

04/06 08:59, 5年前 , 10F
a[0] = 2
04/06 08:59, 10F

04/06 08:59, 5年前 , 11F
b[0]
04/06 08:59, 11F

04/06 10:19, 5年前 , 12F
Copy by reference or value in Python
04/06 10:19, 12F

04/06 10:19, 5年前 , 13F

04/06 13:09, 5年前 , 14F
04/06 13:09, 14F

04/06 14:30, 5年前 , 15F
c#有個用法 public string b {get {return a+1}}
04/06 14:30, 15F

04/06 14:32, 5年前 , 16F
可以封裝在class裡 你google看看
04/06 14:32, 16F

04/08 21:38, 5年前 , 17F
勢必要把他們封裝成物件
04/08 21:38, 17F

04/08 21:40, 5年前 , 18F
你想改變的是物件的 set get
04/08 21:40, 18F

04/08 21:43, 5年前 , 19F
python 預設就有 setter getter 的 decorator google一下
04/08 21:43, 19F

04/08 21:43, 5年前 , 20F
04/08 21:43, 20F
文章代碼(AID): #1Sf-fnH8 (Python)