如何将boolean作为参数传递给方法?
例如,我有一个代码如下:
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,{{1}被视为" True" (字符串)
如果我有办法在bothon中将布尔类型作为可选参数传递,请告诉我。
我知道一种方法是在if else条件下处理字符串并按如下方式处理:
starttls
但是,请告诉我是否有其他有效或更好的方法将布尔值作为输入传递给另一个方法?
答案 0 :(得分:6)
True
或False
值没有什么特别之处......
invoke_tls(self, auth_type, auth_value, starttls)
如果您的意思是如何传递特定参数而不传递其他参数,则Python具有“关键字参数”:
def foo(a, b=1, c=False):
print(a, b, c)
foo(1) # b will be 1 and c False (default values)
foo(1, c=True) # b will be 1 (default) and c True
Python还允许动态指定关键字参数...例如
parms = {"c" : True} # Dictionary name → value
foo(1, **parms) # b will be 1 (default), c will be True
答案 1 :(得分:2)
Boolean是一种数据类型,可以像任何其他数据类型一样传递。
检查:
a = True
def foo(b=None):
print b
foo(a)
输出:
True