楼主: 1244690926
4989 14

python def 函数传送动态变量 [推广有奖]

11
1244690926 发表于 2022-4-11 17:58:54 |只看作者 |坛友微信交流群
HappyAndy_Lo 发表于 2022-4-10 00:17
贴完整代码看看?
已经上传了代码,就是动态变量remind_s和remind_s_res   这两个是动态变量,可以做成list,传到后面的w_excel(),括号里面需要用到参数remind_s1、remind_s2、remind_s3、...、remind_s_res1、remind_s_res2、remind_s_res3、...等一串动态变量,动态变量都是有对应的值

使用道具

12
HappyAndy_Lo 发表于 2022-4-12 00:06:50 |只看作者 |坛友微信交流群
发现思路有些混乱。python的import this  有19条规则,至少有一条违背:不大好阅读。

前面访问数据库,获取select count(*)的数据后,转换成数字
remind_s_zb=remind_s_zb['RD_GP_S_ZB'].tolist()
remind_s_zz=remind_s_zz['RD_GP_S_ZZ'].tolist()
remind_s_jd=remind_s_jd['RD_GP_S_JD'].tolist()  
后面的代码先注释一下,看这里的数据是不是你想要的数据。(就是3个一维列表)

i=0
sd1=''
sd2=''
for i in range(0,remind_s_zb[0]):
这里不知道是想做什么,remind_s_zb列表的第一个元素是count(distinct position_id)获得的第一个地方个数
这个循环里面的local()[...]是在做什么?和那个zz做什么? 这些是不是都可以在数据库端通过SQL搞定?
好像这个循环蛮复杂嘛,每一轮循环都要生成一个游标去数据库取数据集

没懂那个locals()是个啥。。。。不好意思。

后面有个错误:
def w_excel()应该在def get_sel_excel(file_excel):之前定义吧?

我个人的感觉是:定义一个全局的list,存放你前面搞定的字符串,比如取aList
def w_excel(aList):
     循环读取aList处理你的业务

def get_sel_excel(file_excel, aList):
     w_excel(aList) 即可

但愿对你有帮助

使用道具

13
1244690926 发表于 2022-4-12 14:24:43 |只看作者 |坛友微信交流群
HappyAndy_Lo 发表于 2022-4-12 00:06
发现思路有些混乱。python的import this  有19条规则,至少有一条违背:不大好阅读。

前面访问数据库, ...
1、对于上面数据该在数据库搞还是在python搞,都不碍事,看个人喜欢;
2、locals()这个没看懂,那你就没办法解决动态变量传参的这个问题,明显这个就是生成动态变量用的;
3、后面定义函数的,谁先谁后不影响程序,只是个函数,调用在定义后面就可以;
看你的回复,应该还是不太明白我要实现的东西是什么,我自己想办法吧,谢谢哈

使用道具

14
HappyAndy_Lo 发表于 2022-4-13 01:28:58 |只看作者 |坛友微信交流群
1244690926 发表于 2022-4-12 14:24
1、对于上面数据该在数据库搞还是在python搞,都不碍事,看个人喜欢;
2、locals()这个没看懂,那你就没 ...
不好意思,水平有限,没能帮上你的忙。

查了一下原来locals()是Python的内建函数,
locals() 函数会以字典类型返回当前位置的全部局部变量。

是不大明白你的表述。
不管这代码前面是什么,都是为了凑成要传的参数格式。如果把凑成的各字符串放进list或者dict,
传list也好,传dict也好,它们都是动态变量
那个w_excel函数,按函数名的意思,就是要把这些参数写入excel吧?

纯探讨,不要介意

使用道具

15
听雨在小楼 发表于 2022-4-15 09:32:10 |只看作者 |坛友微信交流群
电子表格不熟,问题的内容,我也没读懂,所以无法回复。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 13:44