gpt4 book ai didi

python - 从字符串到类型的词法转换

转载 作者:IT老高 更新时间:2023-10-28 20:51:05 27 4
gpt4 key购买 nike

最近,我尝试在 Python 中存储和读取文件中的信息,遇到了一个小问题:我想从文本文件中读取类型信息。从字符串到 int 或到 float 的类型转换非常有效,但是从字符串到类型的类型转换似乎是另一个问题。自然地,我尝试了这样的事情:

var_type = type('int')

但是,type 不是作为强制类型转换,而是作为一种机制来查找变量的类型,这里实际上是 str

我找到了一种方法:

var_type = eval('int')

但我通常会尽量避免使用 evalexec 之类的函数/语句。所以我的问题如下:是否有另一种pythonic(更具体)的方式将字符串转换为类型?

最佳答案

我喜欢使用 locate,它适用于内置类型:

>>> from pydoc import locate
>>> locate('int')
<type 'int'>
>>> t = locate('int')
>>> t('1')
1

...以及它可以在路径中找到的任何东西:

>>> locate('datetime.date')
<type 'datetime.date'>
>>> d = locate('datetime.date')
>>> d(2015, 4, 23)
datetime.date(2015, 4, 23)

...包括您的自定义类型:

>>> locate('mypackage.model.base.BaseModel')
<class 'mypackage.model.base.BaseModel'>
>>> m = locate('mypackage.model.base.BaseModel')
>>> m()
<mypackage.model.base.BaseModel object at 0x1099f6c10>

关于python - 从字符串到类型的词法转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775460/

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