Python模組的匯入以及軟體開發規範

2022-07-03 20:18:14 字數 2556 閱讀 8687

1 . 當指令碼直接使用,直接當指令碼執行呼叫即可

def func():

print("from func1")

func()

2 . 當做模組被匯入使用,但是又想測試當前指令碼是否能正常執行就是用ifname== 'main':

def func():

print("from func1")

if __name__ == '__main__':

func()

我們在建立包時,是給別人匯入引用的,而在包的內部也會有彼此之間的互相匯入的需求,這時候就有了,相對匯入和絕對匯入
絕對匯入:以包名做為起始

相對匯入:用.或者..的方式作為起始(只能在乙個包中使用,不能用於不同的目錄內)

目錄關係:

glance/                  # 頂層包目錄

├── __init__.py

├── api # 子層 api

│ ├── __init__.py

│ ├── policy.py

│ └── versions.py

├── cmd # 子層 cmd

│ ├── __init__.py

│ └── manage.py

└── db # 子層 db

├── __init__.py

│ └── models.py

run.py

檔案內容:

#policy.py

def get():

print('from policy.py')

#versions.py

def create_resource(conf):

print('from version.py: ',conf)

#manage.py

def main():

print('from manage.py')

#models.py

def register_models(engine):

print('from models.py: ',engine)

例如:我們在glance/api/version.py中想要匯入glance/cmd/manage.py

在glance/api/version.py

#絕對匯入

from glance.cmd import manage

manage.main()

#相對匯入..上兩層目錄

from ..cmd import manage

manage.main()

import sys

import glance_v1

glance_v1.get()

乙個專案應該由多個目錄檔案組成,每個目錄存在配置的不同意義:

├── atm

│ ├── bin # 程式啟動目錄 (start.py執行程式檔案)

│ │ ├── start.py

│ ├── core # 程式主邏輯目錄

│ │ └── src.py

│ ├── conf # 程式配置目錄

│ │ ├── settings.py

│ ├── db # 程式資料目錄

│ │ ├── mysql

│ ├── lib # 程式包管理目錄

│ │ ├── glance_v1

│ │ └── common.py

│ ├── log # 程式日誌目錄

│ │ ├── acess.log

└───────└

在bin執行start.py檔案下,想呼叫所有專案目錄下的程式需要將atm的路徑加入到sys.path路徑中:

cat /atm/bin/start.py

import sys,os

# os.path.abspath(__file__) # 表示當前程式檔案start.py所在位置;

# os.path.dirname(os.path.abspath(__file__)) # start.py所在位置的上級目錄

# os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # start.py所在位置的上上級目錄,也就是atm所在目錄

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

python 的模組匯入

模組 就是一些函式和類的集合檔案,它能實現一些相應的功能,可以想象成匯入到python中以增強功能的擴充套件。需要使用特殊的命令import匯入以後才能使用。匯入模組的時候可以使用 import somemodule 按照 module.function 的格式使用函式,需要加模組名 from so...

python模組的匯入

用於指定包中的模組名 如 import pack1.module1 from pack1.module1 import fun1錯誤使用 import pack1.module1.fun1 from pack1 import module1.fun1將乙個模組中包含的變數匯入到當前模組的作用域內,共...

python模組的匯入

模組的匯入的方式有以下多種 1.import 模組名 2.import 模組名 as 別名 3.impoert 模組名1,模組名2.一行多個模組 4.from import 5.from import as 別名 6.from import 匯入所有 import time print time.t...