2018-01-19
python中的变量地址
• 分类:
python
• 标签:
python
今天遇到了一个python中十分坑爹的问题,花了一两个小时才理清楚,有必要记录一下。
问题来源与师兄问的一道题目:
1 | Example |
就是一个字符串反转的问题,代码大概如下
1 | if str == None or len(str): |
输出的结果明明正确,题目给出的str
就是原封不动,总之尝试了各种方案还是想不明白。
最后灵光乍现,意识到也许是内存地址的问题,即lintcode检测的是初始时的id(str)
,因为我在后续操作将str
变量指向的地址已经改变,因此如何无论str
里面的结果如何正确,原始时的id(str)
地址的值永远都不发生改变,写到这感觉也不能说python坑,应该说lintcode坑,为什么不去检测后来str
中的值呢?难道本身就不想让我对str
进行复制操作,只能通过str[i] = value
的方式吗?
dzzxjl