自定义一个对象,并为对象添加三个事件,并移除其中一个事件
时间: 2024-01-15 17:02:35 浏览: 29
好的,我可以帮你实现。以下是示例代码,创建了一个名为“CustomObject”的自定义对象,并添加了三个事件:onStart、onUpdate和onStop。然后,我们移除了onUpdate事件。
```python
class CustomObject:
def __init__(self):
self.events = {
'onStart': [],
'onUpdate': [],
'onStop': []
}
def add_event(self, event_name, event_func):
if event_name in self.events:
self.events[event_name].append(event_func)
def remove_event(self, event_name, event_func):
if event_name in self.events:
if event_func in self.events[event_name]:
self.events[event_name].remove(event_func)
def trigger_event(self, event_name):
if event_name in self.events:
for event_func in self.events[event_name]:
event_func()
# 创建自定义对象
obj = CustomObject()
# 添加事件
def start_func():
print("Object started")
def update_func():
print("Object updated")
def stop_func():
print("Object stopped")
obj.add_event('onStart', start_func)
obj.add_event('onUpdate', update_func)
obj.add_event('onStop', stop_func)
# 移除事件
obj.remove_event('onUpdate', update_func)
# 触发事件
obj.trigger_event('onStart')
obj.trigger_event('onUpdate')
obj.trigger_event('onStop')
```
输出结果:
```
Object started
Object stopped
```
可以看到,我们成功地创建了一个自定义对象,并成功地添加了三个事件。然后,我们移除了其中一个事件,最后触发了所有事件并且只有两个事件被执行了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)