一个函数,一个变量,整懵逼了

2019-12-05 11:40:41 +08:00
 css3
>>> import time
>>> def my_time():
... 	return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
>>>
>>> my_time()
'2019-12-05 11:29:47'
>>> my_time()
'2019-12-05 11:29:50'
>>> b = "a"+my_time()
>>> b
'a2019-12-05 11:30:32'
>>> b
'a2019-12-05 11:30:32'
>>> b
'a2019-12-05 11:30:32'


>>> print("a"+my_time())
a2019-12-05 11:38:02
>>> print("a"+my_time())
a2019-12-05 11:38:03
>>> print("a"+my_time())
a2019-12-05 11:38:05



>>> b = "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
>>> b
'a2019-12-05 11:39:27'
>>> b
'a2019-12-05 11:39:27'
>>> b
'a2019-12-05 11:39:27'
>>> 


>>> "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'a2019-12-05 11:41:58'
>>> "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'a2019-12-05 11:41:59'
>>> "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'a2019-12-05 11:42:00'
>>> "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'a2019-12-05 11:42:00'
>>> "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'a2019-12-05 11:42:01'
>>> "a" + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'a2019-12-05 11:42:02'
>>> 
13672 次点击
所在节点    Python
116 条回复
winglight2016
2019-12-05 18:53:35 +08:00
唉,要不还是转行吧
lewinlan
2019-12-05 19:06:08 +08:00
唉,要不还是转行吧

变量想象成是一个标签,你赋值给谁它就代表谁。你令『 b = "a"+my_time()』,程序会把右边的*值*计算出来,然后给这个*值*贴上『 b 』这个标签,所以你每次访问都是同一个值。

另外,你打印时间字符串可以用『 datetime.now().strftime("%Y%m%d")』你那样写太别扭了。
nomaka
2019-12-05 19:06:11 +08:00
唉,要不还是转行吧
ztmqg
2019-12-05 19:10:19 +08:00
楼主别听他们的,加油吧!
楼上的复读机有意思么?
vipppppp
2019-12-05 19:26:49 +08:00
。。。
liuzhiyong
2019-12-05 19:43:55 +08:00
楼主应该是初学啦。“变量是什么”:就是计算机内存里面保存的一些数据。“什么时候变,什么时候不变?”:计算机 CPU 执行修改内存的指令,它就变了,如果 CPU 执行读取内存的指令,它当然不变。
nG29DOMuRYTWfcSr
2019-12-05 19:50:34 +08:00
@css3 楼上所有人都是只会人云亦云,自己一点脑子没有的人,这种问题难道真的没有实现方式么?

输入,b,实际上是调用 b 的 tostring 函数,哪怕是我真的没有深入学过 python, 我都知道任意面向对象类型的语言都可以实现这样的事情。
leafsummer
2019-12-05 19:58:06 +08:00
唉,要不还是转行吧
smdbh
2019-12-05 20:02:27 +08:00
@j0hnj 谢谢指明了我的人生方向,这比告诉我答案意义更大。

这个问题和深拷贝,指针,引用等,都是语言的“通病”,就像 1024 一样习惯就好
asche910
2019-12-05 20:07:38 +08:00
唉,要不还是转行吧
vipppppp
2019-12-05 20:50:34 +08:00
我只是觉得大家没必要探讨 python 的__str__问题
劝转行是有点过分,但在这个论坛看到这样的问题确实相对太过于基础,难免有点震惊。
无论怎么样,还是要学好最基本的一些编程知识,LZ 加油。。
bjt
2019-12-05 20:58:50 +08:00
唉,要不还是转行吧
CodeCore
2019-12-05 21:01:02 +08:00
楼主不要灰心。。。
你发现了更大到世界。
CEBBCAT
2019-12-05 21:57:02 +08:00
> 为什么在 b 变量里边 my_time()不再被调用了??
你给 b 赋值(比如 b = a + XXX )的时候,值已经固定了,是一个像'a2019-12-05 11:30:32'一样的字符串,你可以用 type(b)来验证。
> 直接打印 print("a"+my_time())时,my_time()每次都会被调用
print 里边的"a"+my_time()是一个表达式,所以每次执行都会对 my_time()求值
> 我要在 b 变量中时时更新 my_time()应该怎么做?
def b():
return "a"+my_time()
> 变量是什么😂,什么时候变,什么时候不变?
基础问题,请完整看完一本编程书再问这样的问题。
---
楼主什么身份?行外的朋友?要是培训班出来能被这几个问题难住,我想这个培训班把你和行业坑得不轻
zhjie
2019-12-05 22:24:33 +08:00
真不是我偏见,10 个钓鱼的 9 个是苹果头像!?
ahaxzh
2019-12-06 09:28:17 +08:00
哎,还挺难的。不然跟我回家养猪算了。
css3
2019-12-06 09:33:36 +08:00
@ahaxzh 可以,但养猪前,能先让我明白我问的问题这是为什么吗?
chucongqing
2019-12-06 09:34:21 +08:00
一楼二楼都点赞了
finalwave
2019-12-06 09:55:06 +08:00
都叫 css3 了,不做前端学什么 python
galikeoy
2019-12-06 09:56:10 +08:00
@css3 #97 上面的大佬已经多种维度来解释了,还是看不懂的建议先看一些编程基础

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626157

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX