首页 养生问答 疾病百科 养生资讯 女性养生 男性养生

python跨模块调用函数的问题?

发布网友 发布时间:2022-04-21 04:55

我来回答

3个回答

热心网友 时间:2022-06-18 02:25

有什么办法省略掉那些被调用函数的参数?

也就是func2只想在调用是传入一个c。

那么func2在定义的时候必须喂饱func1,也就是func2在调用 func1时,当前作用域中要有a,b。  

明显图中是没有做到的,没有实际ab


b可以试试在这个文件中直接定义 ab两个变量,那么在第三个文件中引入 func2,就可以直接传c给func2了,因为ab已经在上一步被配置好。

热心网友 时间:2022-06-18 02:25

第一种方案是func1固定两个参数:

你在定义func1函数时写好默认参数,比如:
def func1(a=1,b=2):
return a+b
这样调用的时候可以不用传入参数。直接func1()的结果为3。
缺点是默认参数是固定的。

第二种方案是func1固定一个参数:
在定义func2函数时,定义偏函数。
from func1 import func1
from functools import partial
def func2(b,c):
d = partial(func1,1)
return d(b)+c
这样固定了一个参数a。调用时,只用传入b和c的值就可以。func2(2,3)

至于你想的不传入参数,是不可能的。除非你在一个文件中定义函数,而在函数之外定义全局变量,所有func1使用的参数都是全局变量。

热心网友 时间:2022-06-18 02:26

你已经定义了变量那就必须带过去。不想要三个变量的话 你可以将c 定义为列表 然后定 a,b 为c中的某个元素 这就只用定义c 就可以了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com