例如
def person(name,if age == 18:...//some instructions and this parameter will be default parameter):
print(age)
print(name)
person('Ratheesh')
//我知道这听起来很愚蠢,但是有可能这样做吗?
我试图确认用户是否在输入参数时输入了确切的值...但是幸运的是,我已经使用默认参数完成了此操作,但是每当我更改参数值时它都会覆盖它,因此,我想避免覆盖。 。
您的意思是默认参数吗?
def person(name, age=18):
print(age)
print(name)
person('Ratheesh')
返回:
18
Ratheesh
和:
person('Ratheesh', 20)
返回:
20
Ratheesh
为什么要使用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')
希望这可以解决您的问题!
从技术上讲,您可以在表达式中包含一个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