提问人:Matteo Pasini 提问时间:8/25/2023 最后编辑:Matteo Pasini 更新时间:8/25/2023 访问量:25
对同一类属性处理不同的强制转换操作
Handle different cast operation on same class property
问:
有没有办法处理 Any 类型类的属性的强制转换? 我正在转换一个旧项目,该项目从数据库加载文本选项并将它们放入表示它们的对象中。有没有一种方法可以通过强制转换操作将字符串转换为请求的类,然后再从属性返回请求的值?
class Example:
def __init__(self, value:str):
self.__value = value
@property
def value(self) -> Any:
return self.__value
example = Example("123")
int_example = int(example.value) //use some method to handle int cast and return a int value
str_example = str(example.value) //use other method (or the same with a parameter specifying the class) to handle the str cast and return a str value
在类的初始化过程中,我不知道与字符串关联的类型,但只有在读取它时
答:
1赞
shaik moeed
8/25/2023
#1
您可以添加和方法,__int__
__str__
from typing import Any
class Example:
def __init__(self, value:str):
self.__value = value
@property
def value(self) -> Any:
return self.__value
def __int__(self, *args, **kwargs):
return int(self.value, *args, **kwargs)
def __str__(self, *args, **kwargs):
return str(self.value, *args, **kwargs)
example = Example("123")
int_example = int(example) # or int(example.value)
str_example = str(example) # or str(example.value)
print(type(int_example))
print(type(str_example))
输出:
<class 'int'>
<class 'str'>
评论