b变量里边 my_time()不再被调用了??print("a"+my_time())时,my_time()每次都会被调用my_time()应该怎么做?>>> 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'
>>> 
让v站大佬见笑了
那为什么在编辑器里边b每次都是被调用的?

     101 
                    
                    guolaopi      2019-12-06 09:56:25 +08:00 
                    
                    回复我看笑了, 
                但是楼主附言我没看懂。 啥叫“在编辑器里边 b 每次都是被调用的?”  | 
            
     102 
                    
                    guolaopi      2019-12-06 09:57:37 +08:00 
                    
                    回复我看笑了, 
                但是楼主的附言我没看懂。 “那为什么在编辑器里边 b 每次都是被调用的?”是什么意思  | 
            
     103 
                    
                    ahaxzh      2019-12-06 09:58:03 +08:00 
                    
                    @css3 其实很多回复里已经讲的很清楚了,比如 77 94 等,这个问题 其实不算什么问题。你需要把基础知识补起来就行了。 
                int x = 10; // 变量 x 里存放了 一个整数 10 int b = 10 + x; // 变量 b = 10 + x = 10 + 10 = 20,这时候 变量 b 里存放了一个整数 20 x = 20 ; // 变量 x 里存放了一个整数 20, 从 10 改成了 20 这时候 b 并没有后续的 操作,所以 b 里面一直都是 20 所以不论你如何输出 b,修改 x 的值 ,那么 b 永远都是 20 如果你输出的 是 10 + x,那么这个结果就是一个动态的呀,x 等于多少直接影响了结果。  | 
            
     104 
                    
                    Jrue0011      2019-12-06 10:26:16 +08:00 
                    
                    在 IDE 里你每一次运行,相当于你每次都打开了一个新的命令提示符然后执行所有的代码。 
                想要在 IDE 里复现主楼里变量 b 重复输出不变的情况,只需要在下面多加几行 print(b)运行,你就可以看到这几次 b 的值是一样的了。 另外顺便补充下,你缺少的概念可能是:在代码里=号其实是赋值,而不是数学中的相等 b = a + my_time()的意思是,把 a + my_time()的结果赋值给 b,b 中保存了这个结果,而不是你每次使用 b 就等于每次使用 a + my_time()  | 
            
     105 
                    
                    zunceng      2019-12-06 10:27:26 +08:00 
                    
                    感觉楼主不是计算机的  但是思维方式绝对纯正的函数式 
                 | 
            
     106 
                    
                    JeffGe      2019-12-06 10:33:40 +08:00 via Android 
                    
                    计算机是很“笨”的,你需要降低自己“人类的智商”才能更好理解一些编程的初级知识 
                 | 
            
     107 
                    
                    hjw45611      2019-12-06 10:39:54 +08:00 
                    
                    编程基础建议补一补,先从寄存器看吧 
                a=1(a 寄存器里存了 1),b=a+1(b 寄存器里存了 1+1=2),a=2 ( a 寄存器里存了 2 ) 现在你输出 b,b 里一直存的是 2,没有再次存储 a+1,所以输出的是 2  | 
            
     108 
                    
                    hakono      2019-12-06 10:41:13 +08:00 via iPhone 
                    
                    你们喷啥嘛,楼主这可是典型的 FP 编程思维 
                你们 FP 编程学起来还可能会吃力死呢。。。。  | 
            
     109 
                    
                    yazinnnn      2019-12-06 11:12:28 +08:00 
                    
                    楼主你挺适合学 lisp 的 
                (define b (+ 'a' (time))) 这样你每次执行 b 就是你想要的效果了 https://www.cnblogs.com/keanuyaoo/p/3367583.html 写 lisp 跟写诗似的😃  | 
            
     110 
                    
                    grzhan      2019-12-06 11:42:46 +08:00 
                    
                    “编辑器里面每次都被调用”是因为每次你在 VS Code 运行你的 Python 脚本的时候,是从头开始重新逐句运行的。 
                所以 b = "a" + my_time() 每次你运行都会被执行到,b 都会获取到当前最新的时间 但是你最开始发贴的例子是在 Python 解释器跑的,b = "a" + my_time() 只被执行了一次,所以之后你每次查看 b 变量的值是不会变的。 [变量] ( Variable )的“变” 这个概念,在这个语境下是和 [常量] ( Constant ) 相对应的,变量的值是可变的,而常量不可变。而 python 语法没有真正的常量所以你可能没有学到常量。 比如你有个变量 a,那么你先写了 a=1,之后再写 a=2 是 ok 的。 但比如你有个常量 A,那么你开始定义了 A=1,之后再想赋值 A=2 就会报错,因为常量是不可变的。  | 
            
     111 
                    
                    teddy2725      2019-12-06 14:14:51 +08:00 
                    
                    好好写你的前端代码它不香么 
                 | 
            
     112 
                    
                    iamdaguduizhang      2019-12-06 17:05:21 +08:00 
                    
                    
                 | 
            
     113 
                    
                    hannhuan      2019-12-06 17:09:27 +08:00 
                    
                    跑个题,楼主的头像太符合标题和内容了…… 
                 | 
            
     114 
                    
                    sologgfun      2019-12-06 17:15:29 +08:00 
                    
                    能理解楼主的心情,不过能搞清楚问题就好 
                 | 
            
     115 
                    
                    oahebky      2019-12-06 17:47:44 +08:00 
                    
                    函数不是变量。函数执行后会得到返回值。赋值给 b 的是返回值。 
                楼主是中学生???  | 
            
     116 
                    
                    jismhxjr      2019-12-07 00:46:36 +08:00 
                    
                    唉,要不还是转行吧 
                 |