如何通过if条件判断过滤cleaned_value不等于指定函数对象的情况?
解决方案
你打印出的结果说明当前cleaned_value是函数本身的内存引用(因为你直接打印了函数名,没加括号调用,所以输出的是函数对象)。要实现“当cleaned_value与该函数对象不同时进行过滤”,可以按以下两种场景处理:
场景1:判断变量是否为非函数类型(即已为函数执行结果或其他非函数值)
如果核心需求是过滤掉非函数状态的cleaned_value,可以用callable()判断变量是否可调用(函数属于可调用对象):
if not callable(cleaned_value): # 执行你的过滤逻辑,比如处理值、跳过操作等 print("执行过滤操作")
也可以通过类型判断更精准:
import types if not isinstance(cleaned_value, types.FunctionType): # 执行过滤逻辑 pass
场景2:严格判断变量是否不是特定函数实例
如果需要确认cleaned_value是否不再是你打印的那个特定函数对象(比如担心变量被重新赋值为其他函数),可以先保存原函数的引用,再做身份对比:
# 先保存原函数的引用 original_cleaned_func = cleaned_value # 后续判断时 if cleaned_value is not original_cleaned_func: # 执行过滤逻辑 pass
注:is运算符用来判断两个对象是否为同一内存实例,比==更适合函数对象的身份判断。
内容的提问来源于stack exchange,提问作者vaginaweb
相关产品推荐
相关产品推荐

