gpt4 book ai didi

用于静态类型类属性的 Python 模块

转载 作者:行者123 更新时间:2023-11-30 23:44:02 26 4
gpt4 key购买 nike

我希望我的 Python 类在将值分配给属性时自动检查值的类型。

有一个想法的traits module 和 IPython 有一个纯 python 版本作为其子模块 IPython.utils.traitlets 。有类似的模块吗?如果该模块有自动命令行参数解析器来设置这些属性,那就更好了。

编辑:感谢您提供的片段。但我想要 Python 。如果存在库可以做到这一点,我不想自己重新实现。

最佳答案

我不知道traits ...但是如果您想在分配对象时检查对象的类型,您可以重写__setattr__来检查...

class MyClass(object):
def __setattr__(self, attr, val):
if attr == 'my_attr':
if not isinstance(val, str):
raise ValueError('my_attr must be a string!')
else:
object.__setattr__(self, attr, val)
else:
object.__setattr__(self, attr, val)

a = MyClass()
a.my_attr = "Hello World!" # This is OK
a.my_attr = 1 # This is not: ValueError

但如果没有充分的理由,我真的不建议这样做......

关于用于静态类型类属性的 Python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359488/

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