gpt4 book ai didi

python - 如何使访问类中的任何数据抛出异常?

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:57 26 4
gpt4 key购买 nike

我有一个代表硬件的类。我只希望一个线程能够一次控制它,但我也希望能够在另一个线程花费太长时间时将其踢出资源。我认为最好的方法是跟踪类中的所有者线程 ID,并在从另一个线程访问任何属性时抛出异常。

这似乎是一个可以用元类解决的问题 - 我需要以某种方式拦截属性检索,并在线程 ID 错误时抛出异常?

最佳答案

你不一定需要元类,你可以使用__getattribute__ :

class Hardware(object):
def __getattribute__(self, attr):
if super(Hardware, self).__getattribute__(owner_id) != current_thread_id:
raise YourAccessError # NOT AttributeError
return super(Hardware, self).__getattribute__(attr)

关于python - 如何使访问类中的任何数据抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com