我们可以在函数内部的if语句中键入参数

问题描述 投票:-1回答:3

例如

def person(name,if age == 18:...//some instructions and this parameter will be default parameter):
   print(age)
   print(name)

person('Ratheesh')

//我知道这听起来很愚蠢,但是有可能这样做吗?

我试图确认用户是否在输入参数时输入了确切的值...但是幸运的是,我已经使用默认参数完成了此操作,但是每当我更改参数值时它都会覆盖它,因此,我想避免覆盖。 。

python function arguments parameter-passing
3个回答
0
投票

您的意思是默认参数吗?

def person(name, age=18):
   print(age)
   print(name)

person('Ratheesh')

返回:

18
Ratheesh

和:

person('Ratheesh', 20)

返回:

20
Ratheesh

0
投票

为什么要使用if条件作为参数。无论您要实现什么目标,都可以使用以下代码中的if条件来完成:

def person(name,age):
   if age == 18:
       #some instructions 
   print(age)
   print(name)

person('Ratheesh',10)

要回答您的问题,NO,您不能将if条件作为参数传递。如果您尝试输入默认参数值,也许可以参考以下代码:

def person(name,age=18): #this will set the default value of age to 18 in case it isn't mention in the call
   if age == 18:
       #some instructions 
   print(age)
   print(name)

person('Ratheesh')

希望这可以解决您的问题!


0
投票

从技术上讲,您可以在表达式中包含一个if,您可以在其中定义函数的默认参数,但是请注意,表达式将被求值定义函数时

>>> default = "drinking age"
>>> def person(name: str, age: int = 21 if default == "drinking age" else 18):
...     print(name, age)
...
>>> person("Bob")
Bob 21
>>> default = "voting age"
>>> person("Bob")
Bob 21

出于实际目的,很难想象为什么您会想做这样的事情。在函数体内进行这种评估会更有意义:

>>> def person(name: str, age: Optional[int] = None):
...     if age is None:
...         age = 21 if default == "drinking age" else 18
...     print(name, age)
...
>>> person("Bob")
Bob 18
>>> default = "drinking age"
>>> person("Bob")
Bob 21
© www.soinside.com 2019 - 2024. All rights reserved.