對python同一個文件夾里面不同.py文件的交叉引用方法詳解
比如有兩個模塊,一個aa.py,一個bb.py 代碼如下:
aa.py:
#encoding:utf-8 import bb a=1
bb.py:
#encoding:utf-8 import aa print aa.a
執(zhí)行bb.py時,不能執(zhí)行,打印錯誤 AttributeError: 'module' object has no attribute 'a'
原因:
如果執(zhí)行bb的話,這時候bb是__main__,不是module,所以會執(zhí)行到bb的from aa,這個時候python會執(zhí)行aa.py,而aa.py一開始就是from bb,所以python又會去執(zhí)行bb.py,因為bb.py的一開始就是from aa,并且因為之前執(zhí)行過,所以這個時候aa已經(jīng)在sys.module里面,所以python不會重新執(zhí)行aa.py,而只是把sys.modules里面的aa返回給你,所以當(dāng)執(zhí)行到bb.py的print b 的時候,還沒有執(zhí)行aa.py里面的a=1,所以會有找不到a的attribute error
解決方案:
aa.py:
#encoding:utf-8 import bb a=1
bb.py:
#encoding:utf-8 import aa if __name__=="__main__": print aa.a
以上這篇對python同一個文件夾里面不同.py文件的交叉引用方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python虛擬機字節(jié)碼教程之裝飾器實現(xiàn)詳解
在本篇文章當(dāng)中主要給大家介紹在?cpython?當(dāng)中一些比較常見的字節(jié)碼,從根本上理解?python?程序的執(zhí)行。在本文當(dāng)中主要介紹一些?python?基本操作的字節(jié)碼,并且將從字節(jié)碼的角度分析函數(shù)裝飾器的原理2023-04-04Python腳本啟動應(yīng)用并輸入賬號或密碼的操作命令
這篇文章主要介紹了Python腳本啟動應(yīng)用并輸入賬號或密碼,安裝所需要的模塊pyautogui、subprocess、psutil等,可以通過pip安裝,下面以安裝pyautogui為例cmd命令行中輸入,需要的朋友可以參考下2024-05-05解決python錯誤提示:TypeError: expected string or&nb
這篇文章主要介紹了解決python錯誤提示:TypeError: expected string or bytes-lik問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01python保存大型 .mat 數(shù)據(jù)文件報錯超出 IO 限制的操作
這篇文章主要介紹了python保存大型 .mat 數(shù)據(jù)文件報錯超出 IO 限制的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05