我刚刚开始使用HarfBuzz,并开始使用GObject内省接口来探索它的API。到目前为止,一切都很简单,但我对language_from_string有点困惑,它有以下docstring:
language_from_string(str:list) -> HarfBuzz.language_t
例如,在IPython,我要:
from gi.repository import HarfBuzz
?HarfBuzz.language_from_string在vanilla中,可以将最后一行替换为: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 第91号问题是关于这个方法的,但似乎与此无关。
发布于 2019-06-10 21:39:50
您必须像HarfBuzz.language_from_string(b'en')一样在python3中调用它(字符串,但前缀为b),因为在py3中,字符串不再仅仅是字节序列,与py2不同。
您知道在python3中获得字符串的实际python表示的gi吗?如果是这样的话,请让我知道,否则,这是预期的从HarfBuzz方面。
https://stackoverflow.com/questions/56501666
复制相似问题