重置函数python的返回值

重置函数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

因此,我有一个函数,它将返回很多变量,比如,这个函数将计算有多少条件是真的,如果在数字列中以“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(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