我刚刚开始使用 HarfBuzz,并已切换到使用GObject Introspection 接口来探索其 API。到目前为止,一切都很容易,但我有点困惑language_from_string
,它具有以下文档字符串:
language_from_string(str:list) -> HarfBuzz.language_t
即在 IPython 中,我这样做:
from gi.repository import HarfBuzz
?HarfBuzz.language_from_string
在 vanilla Python 中,您可以将最后一行替换为:(print(HarfBuzz.language_from_string.__doc__)
或类似的)
如果我用字符串调用此方法,例如:
HarfBuzz.language_from_string('en')
我明白了
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Item 0: Must be number, not str
返回,而如果我先转换为代码点列表:
en = HarfBuzz.language_from_string(list(map(ord, 'en')))
错误消失了,我得到了一些有用的东西。例如我可以这样做:
HarfBuzz.language_to_string(en)
我得到了预期的en
回报,在一个字符串中。
HarfBuzz Issue #91是关于这种方法的,但似乎并不相关。