包,軟體開發目錄規範

2022-01-13 06:22:56 字數 2919 閱讀 3592

包是模組的一種形式,包的本質就是乙個含有__init__.py的檔案的資料夾

當乙個模組功能太多的時候不方便進行管理,我們用包來進行管理

1.匯入包發生的三件事

建立乙個包的命名空間

由於包是乙個資料夾,無法執行包,因此執行包下的__init__.py檔案,將執行過程中產生的名字存放於包命名空間中(即包命名空間中存放的名字都是來自於__init__.py)且init中檔案執行匯入檔案的路徑以執行檔案為基準

在執行檔案中使用包內的名稱,是指向包的命名空間

2.包的兩種匯入方式

import ...

from ... import...

兩種匯入方式與模組的相似,只是匯入包的時候執行的是包裡面的init檔案

3.個人理解包匯入的兩種方式路徑的寫法

關於.的使用,在(from.)是當前目錄.(from..)當前檔案目錄的上一級,.要和from連用才有當前目錄,上一級目錄說法,(import.)不是當前,import相當於python的環境配置路徑
為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要,簡而言之就是把軟體**分檔案目錄。假設你要寫乙個atm軟體,你可以按照下面的目錄結構管理你的軟體**:

atm/

|-- core/

| |-- src.py # 業務核心邏輯**

||-- api/

| |-- api.py # 介面檔案

||-- db/

| |-- db_handle.py # 運算元據檔案

| |-- db.txt # 儲存資料檔案

||-- lib/

| |-- common.py # 共享功能

||-- conf/

| |-- settings.py # 配置相關

||-- bin/

| |-- run.py # 程式的啟動檔案,一般放在專案的根目錄下,因為在執行時會預設將執行檔案所在的資料夾作為sys.path的第乙個路徑,這樣就省去了處理環境變數的步驟

||-- log/

| |-- log.log # 日誌檔案

||-- requirements.txt # 存放軟體依賴的外部python包列表,詳見

|-- readme # 專案說明檔案

# run.py

import sys

import os

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

from core import src

if __name__ == '__main__': #是匯入run的時候不會呼叫函式

src.run()

# settings.py

import os

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

db_path = os.path.join(base_dir, 'db', 'db.txt')

log_path = os.path.join(base_dir, 'log', 'user.log')

# print(db_path)

# print(log_path)

# src.py

from conf import settings

from lib import common

def login():

print('登陸')

def register():

print('註冊')

name = input('username>>: ')

pwd = input('password>>: ')

with open(settings.db_path, mode='a', encoding='utf-8') as f:

f.write('%s:%s\n' % (name, pwd))

# 記錄日誌。。。。。。

common.logger('%s註冊成功' % name)

print('註冊成功')

def shopping():

print('購物')

def pay():

print('支付')

def transfer():

print('轉賬')

func_dic =

def run():

while true:

print("""

1 登陸

2 註冊

3 購物

4 支付

5 轉賬

6 退出

""")

choice = input('>>>: ').strip()

if choice == '6': break

if choice not in func_dic:

print('輸入錯誤命令,傻叉')

continue

func_dic[choice]()

# common.py

import time

from conf import settings

def logger(msg):

current_time = time.strftime('%y-%m-%d %x')

with open(settings.log_path, mode='a', encoding='utf-8') as f:

f.write('%s %s' % (current_time, msg))

python包,軟體開發目錄規範

包是模組的一種形式,包的本質就是乙個含有 init py的檔案的資料夾 當乙個模組功能太多的時候不方便進行管理,我們用包來進行管理 1.匯入包發生的三件事 建立乙個包的命名空間 由於包是乙個資料夾,無法執行包,因此執行包下的 init py檔案,將執行過程中產生的名字存放於包命名空間中 即包命名空間...

python軟體開發目錄 軟體開發目錄規範

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...

軟體開發目錄規範

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要,簡而言之就是把軟體 分檔案目錄。假設你要寫乙個atm軟體,你可以按照下面的目錄結構管理你的軟體 atm core src.py 業務核心邏輯 api api.py 介面檔案 db db handle.py ...