在func1()中,我有一些变量,并且有值。我如何在func2()中调用func1()以获取所有变量和值,因为我想从func2()中选择规则。(因为我们无法在其他函数中使用局部变量)也有func3(),它需要func1 ()值。取得b(b> a)并传递回func2()以仅选择特定规则的条件是什么。
def func1():
a=1
b=2
c=3
func1()
def func2():
if a==1:
print("rule=good")
elif b==2:
print("rule=poor")
elif c==3:
print("rule=very poor")
func2()
def func3():
if b>a:
我们可以将func1()保存到变量中并将该变量传递给func2()参数吗? print(save)给出output = none
def func1():
a=1
b=2
c=3
save = func1()
print(save)
def func2(value):
if a==1:
print("rule=good")
elif b==2:
print("rule=poor")
elif c==3:
print("rule=very poor")
func2(save)
def func3():
if b>a:
实际输出应为: func2给出:
rule=good
rule=poor
rule=very poor
func3仅给出:
rule=poor
答案 0 :(得分:0)
您似乎还不了解功能如何工作。您在功能之外无法使用import java.text.*;
public class Currency {
private double TotalPrice;
// only one instance required
NumberFormat nformat = NumberFormat.getCurrencyInstance();
public static void main(String[] args) {
new Currency().start();
}
public void start() {
final double nightlyRate = 100.00;
int elapse = 1020202220; // random value
double elapsedDays = elapse / (24 * 60 * 60 * 1000.);
TotalPrice = elapsedDays * nightlyRate;
String formattedCurrency = formatCurrency(TotalPrice);
System.out.println(formattedCurrency);
}
public String formatCurrency(double amount) {
String fmtedCurrency = nformat.format(amount);
return fmtedCurrency;
}
}
(或return
)中没有的任何功能。
要完成您想达到的目标(如果我理解正确的话),可以这样做:
yield
中定义变量func1
传递到dict
和func2
func3
和func2
的方式应使它们将func3
展开为变量。dict
答案 1 :(得分:0)
首先,让我们为第二个函数定义一个近似值
def f2(a,b,c):
if a==1: print('a equals 1')
if b==2: print('b equals 2')
if c==3: print('c equals 3')
接下来,您的第一个功能,请注意
所以我们的功能将会
def f1():
# compute compute
return 1,2,3
要将这些值传递给第二个函数,您必须解包返回的单个对象(一个元组)—要解压缩,您只需要知道< strong>拆包运算符是位于迭代器前面的单个*
,因此您对f2
的调用将写为
f2(*f1())
示例会话
$ python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def f1():
... # compute compute
... return 1,2,3
...
>>> def f2(a,b,c):
... if a==1: print('a equals 1')
... if b==2: print('b equals 2')
... if c==3: print('c equals 3')
...
>>> f2(*f1())
a equals 1
b equals 2
c equals 3
>>> ^D
$