python跨模块调用函数的问题?
发布网友
发布时间:2022-04-26 03:55
我来回答
共3个回答
热心网友
时间:2022-04-18 04:32
有什么办法省略掉那些被调用函数的参数?
也就是func2只想在调用是传入一个c。
那么func2在定义的时候必须喂饱func1,也就是func2在调用 func1时,当前作用域中要有a,b。
明显图中是没有做到的,没有实际ab
b可以试试在这个文件中直接定义 ab两个变量,那么在第三个文件中引入 func2,就可以直接传c给func2了,因为ab已经在上一步被配置好。
热心网友
时间:2022-04-18 05:50
第一种方案是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-04-18 07:25
你已经定义了变量那就必须带过去。不想要三个变量的话 你可以将c 定义为列表 然后定 a,b 为c中的某个元素 这就只用定义c 就可以了