【发布时间】:2016-12-28 07:01:09
【问题描述】:
如何将布尔值作为参数传递给方法?
例如,我有如下代码:
def msg_util(self, auth_type=None,starttls=False):
....
starttls=True
invoke_tls(self, auth_type, auth_value, "require_tls=%s" %starttls)
....
....
def invoke_tls(self, auth_type=None, auth_value=None,range=None,style=None, adminuser=None,require_tls=False):
...
由于我将starttls作为invoke_tls方法的字符串传递,在方法定义invoke_tls中,如果require_tls默认没有设置为布尔值False,starttls被视为“True”(字符串)
请告诉我是否有一种方法可以在 python 中将布尔类型作为可选参数传递。
我知道一种方法是在 if else 条件下处理字符串并如下处理:
def t_or_f(arg):
ua = str(arg).upper()
if 'TRUE'.startswith(ua):
return True
elif 'FALSE'.startswith(ua):
return False
但是,如果有任何其他有效或更好的方法可以将布尔值作为输入传递给另一个方法,请告诉我?
【问题讨论】:
-
如果不通过,
False将是默认通过的值。 -
传递任何其他参数的方式相同。布尔值并不特殊。
-
你为什么要把它变成一个字符串?
-
@MarounMaroun 我需要通过 True
-
@user2357112 因为参数是命名 Python 功能参数(具有默认值),我需要传递参数名称和参数值
标签: python python-2.7