Python中兄弟接點之間相互引用的實現方式

2021-10-05 12:26:09 字數 1382 閱讀 2256

例如檔案的結構如下:

--parent   

--child1

--c1text1.py

--c1text2.py

--child2

--c2text1.py

--c2text2.py

如果c1text1.py中的檔案想呼叫c2text1.py中定義的方法(我們定義為function_c2)

那麼:第一種實現的方式,在c1text1.py檔案中新增**如下:

import sys

import os

+'/'

+'..'))

import c2text1.function_c2

另一種方式是使用相對路徑進行包的匯入:

例如:

from

.import ***

from..

import ***

但會出現這樣的問題:

systemerror: parent module *** not loaded, cannot perform relative import

orvalueerror: attempted relative import beyond top-level package

這兩個問題的原因歸根結底是一樣的,在設計相對匯入時,package所對應的資料夾必須正確的被python直譯器視作package,而不是普通資料夾。資料夾被python直譯器視作package需要滿足兩個條件

1. 資料夾中必須有__init__.py檔案,該檔案可以為空,但必須存在。

2. 不能作為頂層模組來執行該資料夾中的py檔案,即使用…的資料夾外邊還需要有包含__init__.py的資料夾(即不能作為主函式的入口)

即如下所示的文件結構

--parent

--child1

--c1text1.py

--c1text2.py

--__init__.py

--child2

--c2text1.py

--c2text2.py

--__init__.py

對於c1text1來講,child1的父資料夾parent中沒有包含__init__.py檔案,則parent不會被認為是package,因而child1被認為是頂層模組。此外,即使parent中含有了__init__.py檔案,在c2text1.py中引用child1的也不能將c2text1作為主函式的入口。

Python中列表的兄弟

元組的定義 tuple 元組 與列表類似,不同之處在於元組的元素不能修改。元組表示多個元素組成的序列,用小括號 來宣告定義,用於儲存一串資訊,資料之間使用 分隔。元組的索引從0開始,索引就是資料在元組中的位置編號 元組也可以看做是不可變的列表,通常情況下,元組用於儲存無需修改的內容。下面來宣告乙個元...

Python中的列表,元組,字串之間的相互轉化

python中的列表元組和字串之間的相互轉化需要利用,tuple list str 示例如下 the string hello i am xiaoli 字串轉化為元組 the tuple tuple the string the tuple h e l l o i a m x i a o l i 字...

字典 元組 列表之間相互轉化 python

coding utf 8 1 字典 dict 字典轉為字串,返回 print type str dict str dict 字典可以轉為元組,返回 age name class print tuple dict 字典可以轉為元組,返回 7,zara first print tuple dict.va...