python如果存在一个函数def polam_ik(key,msg),key的初始值为55,每当msg_type为2时,会调用另一个函数来更新key的值,如何返回新值和上一次的旧值
时间: 2024-09-26 19:07:21 浏览: 31
毕业设计网页源码-Basic-Template:关联
在Python中,你可以通过定义一个函数`polymorphic_ik`,并在其中使用条件语句来实现这个需求。首先,你需要定义一个用于存储旧键值的变量,并在每次调用时检查`msg_type`。当`msg_type`等于2时,调用更新函数并替换旧值,同时保留旧值。这里是一个简单的示例:
```python
class KeyManager:
def __init__(self):
self.prev_key = 55
def update_key(self, new_value):
self.prev_key = self.current_key
self.current_key = new_value
return self.prev_key, self.current_key
def polymorphic_ik(self, msg):
self.current_key = msg.get('key', self.current_key) # 假设msg有一个名为'key'的字段
if msg.get('msg_type') == 2:
old_key, self.current_key = self.update_key(new_key_value) # 假设new_key_value是你需要的新键值
return old_key, self.current_key
else:
return None, self.current_key # 如果不是msg_type=2,就直接返回当前键值
# 使用示例
manager = KeyManager()
msg = {'msg_type': 2, 'key': 100} # 假设msg有这两个属性
old_value, current_value = manager.polymorphic_ik(msg)
print(f"旧值: {old_value}, 新值: {current_value}")
```
在这个例子中,`polymorphic_ik`函数会在遇到`msg_type`为2时返回旧值和新值。如果没有`msg_type`为2,或者`msg`中没有`key`字段,它将不会更新并返回None作为旧值。
阅读全文