作者zxsaqw12 (雷蒙尼)
看板Python
标题[问题] 用class包装後return不到想要的值
时间Wed May 9 11:59:59 2018
目前因为兴趣在自学,基础不是很好。(以前没程式经验)
近期在做爬虫的练习,
有重复赋值的需求,但发现用class包装後,
却只会拿到第一次的结果。
(虽然用别的方法可以解决)
但我自己本身想不通为什麽会这样,也不知道该打什麽关键字去澄清这个。
所以想请各位前辈帮忙看看我的观念哪里错误了。
程式码如下:
a="a"
b="b"
class TEST():
def __init__(self,test1,test2):
self.test1=test1
self.test2=test2
def test():
test1 = a
test2 = b
return TEST(test1,test2)
test=test()
print (test.test1)
print (test.test2)
a="A"
b="B"
print (test.test1)
print (test.test2)
###Output###
a
b
a
b
############
以上。
结果不是想像中的,
a
b
A
B
是不是我哪里有天大的错误认知阿,
我需要重新复习哪一块呢?
感谢各位。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.138.126.141
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1525838401.A.9D7.html
1F:推 handsomeLin: 你建立instance的时候用的是a b两个值,你改原先两 05/09 12:10
2F:→ handsomeLin: 个值当然不会造成改动,除非你用的是reference type 05/09 12:10
3F:→ handsomeLin: 的东西 05/09 12:10
4F:→ handsomeLin: btw, 其实这跟class一点关系都没有 05/09 12:12
5F:→ zxsaqw12: 对噎我刚刚发现把test=test()拿掉修改後就没有这个问题 05/09 12:13
6F:推 handsomeLin: 比如说 test1 = ‘a’ a = test1 之後你更动test1的 05/09 12:17
7F:→ handsomeLin: 值 a 还是’a’ 你可能要了解一下 = 的意义 05/09 12:17
8F:→ zxsaqw12: 感谢感谢 05/09 12:33
9F:→ justoncetime: 「0为阿拉伯数字,O为英文字母」为啥不用Inconsolat 05/10 10:11
10F:→ justoncetime: a之类的字体 ='= (考题范例) 05/10 10:12
11F:→ justoncetime: 抱歉回错了 Orz 必要可以删除 05/10 10:13