def offset_mask(): for i in range(len(data)): data[i]["出生日期"] =offset_birthday.strftime("%Y-%m-%d") show_data() def offset(): offset_days = 30 birthday_str = date_input.get() # 获取日期输入框的值 birthday = datetime.strptime(birthday_str, "%Y-%m-%d") offset_birthday = birthday + timedelta(days=offset_days) def update2(): global data data = offset_mask() show_data() offset_mask_btn = Button(root, text="偏移脱敏", command=update2) offset_mask_btn.grid(row=2, column=2)报错name 'offset_birthday' is not defined
时间: 2024-03-18 14:38:44 浏览: 97
这个报错是因为在 `offset_mask()` 函数中,`offset_birthday` 变量没有被定义。你需要将 `offset_birthday` 定义为 `offset()` 函数中的局部变量并返回它,在 `offset_mask()` 函数中使用它。修改如下:
```
def offset():
offset_days = 30
birthday_str = date_input.get() # 获取日期输入框的值
birthday = datetime.strptime(birthday_str, "%Y-%m-%d")
offset_birthday = birthday + timedelta(days=offset_days)
return offset_birthday
def offset_mask():
offset_birthday = offset() # 获取偏移后的生日
for i in range(len(data)):
data[i]["出生日期"] = offset_birthday.strftime("%Y-%m-%d")
show_data()
def update2():
global data
offset_mask() # 直接调用偏移脱敏函数
show_data()
offset_mask_btn = Button(root, text="偏移脱敏", command=update2)
offset_mask_btn.grid(row=2, column=2)
```
这样就可以解决这个报错了。
阅读全文