【发布时间】:2021-05-11 11:59:30
【问题描述】:
我试图了解我如何以及为什么没有看到这个特定问题的任何答案。
我有两个functions,每个都有一个参数path
def check_sbb_name(path):
if path is None:
DeltaZero_Selenium_Manager.test_sbb_name_textfield(path)
return path
else:
call = sbb_manager_sql()
name = call.get_new_sbb_name()
DeltaZero_Selenium_Manager.test_sbb_name_textfield(name)
create_new_sbb("", name)
def check_sites_for_sbb(path):
if path is None:
DeltaZero_Selenium_Manager.test_site_combo_options_alternative_overview(path)
else:
call = sbb_manager_sql()
site = call.connect_site()
DeltaZero_Selenium_Manager.test_site_combo_options_alternative_overview(site)
create_new_sbb(site, "")
忽略这些functions 实际所做的一切,因为一切正常,直到
我想将name 和site 传递给以下create_new_sbb 函数
def create_new_sbb(site_name, sbb_name):
mycursor.execute("INSERT INTO sbb_data (site, name, is_deleted) VALUES (%s, %s, %s)",
(site_name, sbb_name, 0))
db.commit()
所以我想同时将这些参数传递给create_new_sbb,而不是在每个函数上调用create_new_sbb
注意
create_new_sbb位于另一个文件中
MySql DB 中的结果:
我显然希望 site 和 name 在同一行
所以只有在两个参数都以某种方式传递时才执行create_new_sbb。
非常感谢任何帮助!!!
【问题讨论】:
-
“在每个函数上调用
create_new_sbb”是什么意思?另外,您需要minimal, reproducible example。 -
你的意思是“如果两个参数都通过了,只执行
create_new_sbb”?如果您尝试在没有所需输入的情况下调用该函数,您将收到 TypeError。如果在未定义它们时将它们传递为 None ,那么,在调用函数之前检查 None 。 -
我需要将我的参数传递给“create_new_sbb”,为此,您必须调用它对吗?
-
@Reti43 - 是的,我知道,但我想知道是否有解决方法,如果没有。我该如何更改才能使其正常工作?
-
您确实在代码中执行
create_new_sbb("", name)。显然这会导致不良结果,所以不要这样做。仅当两个参数都不是空字符串时才调用您的函数。这是一个简单的条件检查。
标签: python function parameter-passing