我试图对类属性进行验证,以便它只能获取特定值或具体的值type
。我想出了以下方法如何递归比较python中两个对象的数据类型?
class someClass:
value_types = [float, [int], "A", "B"]
def __init__(self, value):
for value_type in self.value_types:
if not self.match_type(value_type, value):
raise ValueError("The value type is invalid")
self.value = value
@staticmethod
def match_type(obj1, obj2):
"""
For obj1 and obj2 recursively compares all the types of containers and
elements inside containers, return False in case of mismatch.
"""
pass
我试图找到实现通用match_type
功能,将任何一种value_type
类属性的工作方式。我的主要动机是限制实例属性value
的域,并验证基于value_type
类属性传递的值。
只是为了更清楚起见,允许在上述someClass
构造中的值将是
- 7.5
- [1,9,8,6]
- “A”
- “B”针对错误应提高
值是
- [1.2,2.3]
- “C”
- []
这对你的问题的目的没有关系,但是你的'__init__'函数有一堆bug。 –
谢谢你让我知道,修正了错误。 – Satwik