这个问题该如何解决
来源:2-1 实战自定义包(1)
能量咕噜略略
2019-10-29 10:39:02
from datetime import datetime
def gen_trans_id(date=None):
"""
根据所传入的时间得到一个唯一的交易流水ID
:param date: 日期
:return: 交易流水的ID字符串
"""
# 如果没有传入时间,则使用系统当前的时间
if date is None:
date = datetime.now()
# 怎样保证字符串的唯一
# 日期+时间+毫秒+随机数(6位随机数)
return date.strptime('%Y%m%d%H%M%S%f')
在这段代码下如何测试,我不要老师新建的那段,就这段代码测试这章节讲解的内容,按照之前所学的理解,后面的代码应该这么写,为什么会出错呢?
#不传入任何值,打印出结果
print(gen_trans_id())
9回答
时间,
2019-10-29
同学,你好。同学直接传入一个日期时间类型的参数就可以,例:

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
能量咕噜略略
提问者
2019-10-29
传入实参的情况下,print里面该如何写
能量咕噜略略
提问者
2019-10-29
就是这段代码后面我要怎么输入能返回return的值就好,不要说其他的啦
能量咕噜略略
提问者
2019-10-29
老师你能不能把这个整段代码帮我理下,retrun返回的值如何输出,就这段的,不要东一个,西一个,分开我都懂,主要是如何结合一起,就这段的写出来我看看就好了
能量咕噜略略
提问者
2019-10-29
这里写错了,应该是return date.strptime('%Y%m%d%H%M%S%f')
能量咕噜略略
提问者
2019-10-29
返回的是
return datetime.strptime('%Y%m%d%H%M%S%f')
然后接下去我要如何传入值才能正确打印出来呢,随便写个数值,让整段代码能够正常运行。
print(),里面要怎么写呢
能不能帮我补充下,我怎么写都不对呢
时间,
2019-10-29
同学,你好。同学的代码已经实现了输出啊,print(gen_trans_id())是将gen_trans_id()函数返回的结果进行输出。同学程序报错的原因是因为使用了strptime()函数,该函数是将字符串格式转化为日期格式,需要传入两个参数。在本程序中应使用strftime()方法:将日期格式转化为字符串格式。

同学也可以在调用gen_trans_id()时将返回的结果赋值给变量,再进行输出。
参考代码:

同学的理解是没问题的,在调用时不传入实参,date的值为None,则会输出当前时间。
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
能量咕噜略略
提问者
2019-10-29
我知道呀,你没明白我的意思呀,这段代码如何实现输出,能否把完整的贴出来我看下?返回的时候是return datetime.strptime('%Y%m%d%H%M%S%f'),那下面输出按照老师之前教的不就是
print(gen_trans_id()),我这边定义成一个空的字符串,按照程序逻辑来看,空的字符串就会返回当前时间.. 就这段完整代码能不能帮我理清下
时间,
2019-10-29
同学,你好。
1、应使用strftime()方法:将日期格式转化为字符串格式。
参考代码:

2、同学用的是strptime():该函数是将字符串格式转化为日期格式,需要传入两个参数
例:
from datetime import datetime
stime = datetime.strptime('2008-02-14', '%Y-%m-%d')
print(stime) # 2008-02-14 00:00:00如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
相似问题