重置函数python的返回值
因此,我有一个函数,它将返回很多变量,比如,这个函数将计算有多少条件是真的,如果在数字列中以“S”开头,在反列中小于7天,它将返回真的,并使用该条件计算例如5:重置函数python的返回值,python,pandas,loops,Python,Pandas,Loops,因此,我有一个函数,它将返回很多变量,比如,这个函数将计算有多少条件是真的,如果在数字列中以“S”开头,在反列中小于7天,它将返回真的,并使用该条件计算例如5: def Count (): sql_con_obj = SqlConnector() sql_con_obj.connect() sql_con_obj.con.commit() sql="SELECT * FROM bd_opensgc.teste" df= pandas.read_sql_query(s
def Count ():
sql_con_obj = SqlConnector()
sql_con_obj.connect()
sql_con_obj.con.commit()
sql="SELECT * FROM bd_opensgc.teste"
df= pandas.read_sql_query(sql,sql_con_obj.con)
Smaller=df["Anti"] < to_timedelta(7,unit="D")
Between = ( to_timedelta(7, unit= "D") < df["Antig"] ) & (
df["Anti"] < to_timedelta(25, unit= "D") )
Bigger=df["Anti"] > to_timedelta(25,unit="D")
S = ['S']
SSmaller = df['Number'].str.startswith(tuple(S)) & Smaller
SBetween = df['Number'].str.startswith(tuple(S)) & Between
SBigger = df['Number'].str.startswith(tuple(S)) & Bigger
SumSmaller = sum(Smaller)
SumBetween = sum(SBetween)
SumBigger = sum(SBigger)
return SumSmaller, SumBetween, SumBigger
下一个代码不是我的代码是如何工作的,而是一个示例,我正在使用while true和另一个函数进行循环,该函数中是sendmail(),但我认为这样工作很好,并且给了我同样的问题
if __name__ == '__main__':
while True:
if condition= True:
x=threading.Thread(target=sendemail)
if condition = True:
x=threading.Thread(target=sendemail)
time.sleep(20)
我正在循环sendemail函数,在第一个循环中,SumSmaller、SumBetween、SumBiger给我所需的返回值并发送正确的电子邮件,但在下一个循环中,这些值将重复。。。在“sendemail”函数这样计数后,是否有方法重置函数的返回值
def sendemail ():
SumSmaller, SumBetween, SumBigger= Count ()
#Reset values of function Count
要注意循环通过,先抛出第一个条件,然后抛出另一个条件 您的
sendmail()
函数对返回值不做任何处理,返回值时会丢失。此外,您的示例循环代码在循环时从不退出第一个。已编辑@Quamranai如果我假设Count()
每次访问数据库并返回相同的值,那么您的电子邮件将包含重复的内容。在什么情况下,您希望返回值发生变化?我没有在函数sendemail中创建线程,该线程将使用另一个函数,在运行时提取并插入数据库,然后在底部使用sendemail()函数进行关联,其条件用于定义时间,如果其8:30将运行工况1,如果其14将运行工况2
def sendemail ():
SumSmaller, SumBetween, SumBigger= Count ()
#Reset values of function Count