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

2019 年 12 月 5 日
 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'
>>> 
16334 次点击
所在节点    Python
116 条回复
crella
2019 年 12 月 5 日
还有提醒楼主,在绝大多数语言中,数组 a = 数组 b,这个操作是引用传递,就是当后续更改了数组 b 的某个元素的值后,数组 a 也会发生对应的变化。在你使用的语言中,一定要先查查语言的深拷贝(deepcopy 方法)
mara1
2019 年 12 月 5 日
楼主别听他们的,谁都是一点点学的,慢慢来,自己不要气馁。

基于你初学者的身份,建议你先谷歌,或找同事问,效率更高,如果还解决不了,再去网上问。
VShawn
2019 年 12 月 5 日
我猜测楼主是想用闭包?

要不还是转行吧
Nugine0
2019 年 12 月 5 日
```
$ cat a.py
import time

def get_time():
return time.strftime(
'%Y-%m-%d %H:%M:%S',
time.localtime(time.time()))

class TimeStr(str):
def __str__(self):
return get_time()
def __repr__(self):
return get_time()

b = TimeStr()
for i in range(5):
print(f"{i+1}: {b}")
time.sleep(1)

$ python a.py
1: 2019-12-05 15:50:57
2: 2019-12-05 15:50:58
3: 2019-12-05 15:50:59
4: 2019-12-05 15:51:00
5: 2019-12-05 15:51:01
$
```
Ainndy
2019 年 12 月 5 日
唉,要不还是转行吧
HanShan63
2019 年 12 月 5 日
唉,要不还是转行吧
blackccc
2019 年 12 月 5 日
变量就是 72 变,想怎么变就怎么变
zixiaoguan
2019 年 12 月 5 日
代码是一行一行执行的,b 在赋值的时候已经执行了那段代码,以后就不会执行了。每次需要反复执行的代码,那种代码叫做函数。
neroxps
2019 年 12 月 5 日
楼主标题写的很好,什么是变量,什么是函数,楼主搞清楚就是了。

正如 bash

```bash
time(){
echo date
}

echo "a $(time)"

# 和 echo "a $(date)" 是一个意思啊。

```

函数每次调用都会执行,而变量只是存在一个内存空间的东西,变量在不被别人修改的时候是不会变化的。函数是动态的,调用就执行一次。

函数是动词,变量是形容词。
neroxps
2019 年 12 月 5 日
@neroxps #69 手残连 bash 都敲错

```bash
time(){
echo $(date)
}

echo "a $(time)"

# 和 echo "a $(date)" 是一个意思啊。

```
MickeyGate
2019 年 12 月 5 日
?我开始怀疑这个论坛的专业性...
HonoSV
2019 年 12 月 5 日
别学 python,来学 java 吧,好懂很多
CosimoZi
2019 年 12 月 5 日
楼主很适合学习函数式编程
solgh
2019 年 12 月 5 日
唉,要不还是转行吧
madmen
2019 年 12 月 5 日
是不是买了朋友圈推送的,1 天学会 python ?
这个是计算机基础知识,先去恶补一下基础知识会比较好。
Erroad
2019 年 12 月 5 日
楼主要不去玩玩人力资源机器?
HolmLoh
2019 年 12 月 5 日
他们都只是调侃而已,不比挂在心上
建议去看一些关于计算机书和 Python 的基本语法,应该会对你大有帮助

这里主要是两个点
一个是 my_time(),每次使用“my_time()”的时候,则会调用一次“my_time()”这个函数,而函数的每次调用都会执行一次函数对象的代码,所以每次调用就相当于生成一个新的值
第二是 b = ,这个是定义一个遍历 b,并赋值,使用“=”赋值之后,只要变量“b”不被再次使用“=”覆盖掉原值,他的数据就不会变

通俗的讲就是,你有一个文具袋( my_time ()),你从箱子里面拿出一支笔(调用函数),随后放到你的桌子上(赋值给 b ),随后你就可以看到桌子上的笔了(打印 b ),在你从文具袋里拿去物品(调用函数)并且放到桌子上,你桌子上永远都会是那支笔

我水平有限,解释的不好见谅
Mistwave
2019 年 12 月 5 日
b = "a"+my_time()
这里是 call by value,而不是 call by name
leeleelee
2019 年 12 月 5 日
@KaynW 知识的诅咒
xuyl
2019 年 12 月 5 日
要不转行吧

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

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

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

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

© 2021 V2EX