A byte[]
с размером максимального 32-разрядного целого числа со знаком потребует 2 ГБ смежного адресного пространства. Вы не должны пытаться создать такой массив. В противном случае, если размер на самом деле не такой большой (и это просто больший тип), вы можете смело применить его к int
и использовать его для создания массива.
Импорт модулей Python - отличная статья, объясняющая циклический импорт в Python.
Самый простой способ исправить это - переместить импорт пути в конец модуля узла.
Вы, возможно, не должны импортировать Path
в node.py
для Path
и Node
для использования друг друга.
# in __init__.py (The order of imports should not matter.)
from .node import Node
from .path import Path
# in path.py
from . import Node
class Path
...
def return_something_pathy(self):
...
# in node.py
class Node
def __init__(self, path):
self.path = path
...
def a_node_method():
print(self.path.return_something_pathy())
, Чтобы прояснить, что Node
использует Path
, добавьте вывод подсказок типа. Существует функция доступный запуск с Python 3.7 поддерживать ссылки вперед в аннотациях типа, описанных в PEP 563.
# in node.py (Now with type hinting.)
from __future__ import annotations
class Node
def __init__(self, path: Path):
self.path = path
...
def a_node_method():
print(self.path.return_something_pathy())
я столкнулся с еще одним решением вырыть, Вы из круговой дыры импорта в Python - большое сообщение в блоге, которое преподавало мне это.