#python #lxml
#python #lxml
Вопрос:
Я новичок в Python, и я совсем запутался с импортом пакетов и пространств имен, который, по-видимому, отличается от Golang (или аналогичного экспорта модуля NodeJS).
У меня есть следующие две строки в моем сценарии:
from lxml import objectify
...
root = objectify.fromstring(output.encode())
Я пытался проверить objectify и функцию fromstring
с помощью VS Code, но безуспешно, модуль objectify
даже не удалось найти, когда я открыл lxml
пакет.
Так что, возможно, это связано с некоторыми двоичными модулями, импортируемыми внутри пакета, я не знаю, но я нашел этот файл: lxml/objectify.cpython-38-x86_64-linux-gnu.so
Но это все еще заставляет меня задуматься, как проверить функцию, которую я хочу понять.
Комментарии:
1. В чем проблема? Чего вы не понимаете? См. lxml.de/api/lxml.objectify-module.html#fromstring
2. Я хочу проверить исходный код fromstring(), чтобы увидеть, какие типы данных он возвращает.
3. Исходный код для
fromstring()
находится в файле Cython: github.com/lxml/lxml/blob/master/src/lxml/objectify.pyx#L1794 . Смотрите также lxml.de/lxml-source-howto.html .4. Большое спасибо. Итак, если я правильно понимаю, когда вы устанавливаете пакет, например, через pip3, вы не можете обязательно проверять исходный код, потому что файлы Cython компилируются, но обычный код Python может быть унаследован от Cython?
5. Я недостаточно знаю о Китоне, чтобы быть в состоянии дать полное объяснение. Но да, все становится сложнее, когда библиотека создается не только из кода Python.