我能否确保导入Python代码的用户使用Unicode文本?

2024-06-25 22:56:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码包括

from __future__ import unicode_literals

并且有许多函数接受(并期望)Unicode字符串作为输入,以便充分发挥作用。你知道吗

有没有办法确保用户(在脚本、Python或IPython等中)也使用Unicode文本,例如

my_func("AβC")

不会导致错误(“ascii”编解码器无法解码字节0xce…”),因此

my_func(u"AβC")

没有必要吗?你知道吗


Tags: 函数字符串代码用户fromimport脚本my
1条回答
网友
1楼 · 发布于 2024-06-25 22:56:56

不,unicode_literals是每个模块的配置,必须在要使用它的每个模块中导入。你知道吗

最好的方法就是在my_func的docstring中提到您需要unicode对象。你知道吗

如果你坚持,你可以强制它提前失败:

def my_func(my_arg):
    if not isinstance(my_arg, unicode):
        raise Exception('This function only handles unicode inputs')

如果您在许多地方需要它,那么最好使用装饰器来实现它。你知道吗

在python3.5或更高版本上,可以使用type hints来强制执行此操作。你知道吗

相关问题 更多 >