将更少的参数传递给函数,然后在 Python 中定义
Passing less argument to function then defined in Python
如果我有一个具有多种功能的函数,比方说,计算面积或将三个数字相加。
用户通过input
选择1用于计算面积,2用于相加
def func_calculate(numberOne, numberTwo, numberThree, userChoise):
if userChoise == "1":
calculate Area
do something
if userChoise == "2":
calculate addition
do something
userChoise 是用户的输入
如果用户想要计算面积,函数只有两个参数而不是三个,如果用户想要添加。
所以,终于到了问题...
怎样处理最合适?
当我调用该函数时,当用户想要计算面积时,我应该只将 numberThree 变量设置为零还是什么,或者这是更“正确”的方法吗?
if userChoie == "1":
inputNumberOne = input(...
inputNumberTwo = input(...
inputNumberThree == 0
func_calculate(inputNumberOne, inputNumberTwo, inputNumberThree, userChoise)
解决这个问题的一个好方法是拥有多个功能,每个功能都有特定的作用。您可以创建两个单独的函数 calculate_area()
和 add_numbers()
。然后,您可以简单地检查输入并像这样调用这些函数:
userChoice = input("Enter choice: ")
if userChoice == "1":
inputNumberOne = input("Enter number 1: ")
inputNumberTwo = input("Enter number 2: ")
calculate_area(inputNumberOne, inputNumberTwo)
elif userChoice == "2":
inputNumberOne = input("Enter number 1: ")
inputNumberTwo = input("Enter number 2: ")
inputNumberThree = input("Enter number 3: ")
add_numbers(inputNumberOne, inputNumberTwo, inputNumberThree)
如果你真的想只使用一个参数数量可变的函数,你可以使用 *args 作为参数。例如:
def funct_calculate(*args):
if len(args) == 2:
Calculate Area
else:
Addition
funct_calculate(radius,pi)
funct_calculate(number1,number2,number3)
如果你不想执行多个操作,最好为不同的操作设置不同的函数
choice = input("what user want's to do")
if choice == 1:
add()
elif choice == 2:
multiply()
然后从用户那里为该操作获取参数,例如
def add():
num1 = input("num1")
num2 = input("num2")
num3 = input("num3")
print(num1 + num2 + num3)
其他操作也类似
但如果你不想拥有多个功能,你可以做到
def func(choice):
#choice is the integer which user opted
if choice == 1:
num1 = input("num1")
num2 = input("num2")
num3 = input("num3")
print(num1 + num2 + num3)
elif choice == 2:
.........
如果我有一个具有多种功能的函数,比方说,计算面积或将三个数字相加。 用户通过input
选择1用于计算面积,2用于相加def func_calculate(numberOne, numberTwo, numberThree, userChoise):
if userChoise == "1":
calculate Area
do something
if userChoise == "2":
calculate addition
do something
userChoise 是用户的输入
如果用户想要计算面积,函数只有两个参数而不是三个,如果用户想要添加。
所以,终于到了问题... 怎样处理最合适?
当我调用该函数时,当用户想要计算面积时,我应该只将 numberThree 变量设置为零还是什么,或者这是更“正确”的方法吗?
if userChoie == "1":
inputNumberOne = input(...
inputNumberTwo = input(...
inputNumberThree == 0
func_calculate(inputNumberOne, inputNumberTwo, inputNumberThree, userChoise)
解决这个问题的一个好方法是拥有多个功能,每个功能都有特定的作用。您可以创建两个单独的函数 calculate_area()
和 add_numbers()
。然后,您可以简单地检查输入并像这样调用这些函数:
userChoice = input("Enter choice: ")
if userChoice == "1":
inputNumberOne = input("Enter number 1: ")
inputNumberTwo = input("Enter number 2: ")
calculate_area(inputNumberOne, inputNumberTwo)
elif userChoice == "2":
inputNumberOne = input("Enter number 1: ")
inputNumberTwo = input("Enter number 2: ")
inputNumberThree = input("Enter number 3: ")
add_numbers(inputNumberOne, inputNumberTwo, inputNumberThree)
如果你真的想只使用一个参数数量可变的函数,你可以使用 *args 作为参数。例如:
def funct_calculate(*args):
if len(args) == 2:
Calculate Area
else:
Addition
funct_calculate(radius,pi)
funct_calculate(number1,number2,number3)
如果你不想执行多个操作,最好为不同的操作设置不同的函数
choice = input("what user want's to do")
if choice == 1:
add()
elif choice == 2:
multiply()
然后从用户那里为该操作获取参数,例如
def add():
num1 = input("num1")
num2 = input("num2")
num3 = input("num3")
print(num1 + num2 + num3)
其他操作也类似
但如果你不想拥有多个功能,你可以做到
def func(choice):
#choice is the integer which user opted
if choice == 1:
num1 = input("num1")
num2 = input("num2")
num3 = input("num3")
print(num1 + num2 + num3)
elif choice == 2:
.........