0

我的代码包括

from __future__ import unicode_literals

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

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

my_func("AβC")

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

my_func(u"AβC")

没有必要?

4

1 回答 1

2

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

my_func最好的方法是在您期望 unicode 对象 的文档字符串中提及它。

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

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

如果你在很多地方都需要它,用装饰器来实现它可能会更好。

在 python3.5 或更高版本上,您可以使用类型提示来强制执行此操作。

于 2015-11-16T20:05:19.830 回答