[英]Python - Best Place for Generic Functions
我正在編寫一個flask應用程序,並且發現我有大量的通用實用程序功能。
以下是我認為通用工具功能的功能類型的示例:
def make_hash():
return defaultdict(make_hash)
def file_read(filename):
with open(file_name_, 'r') as f:
return f.read()
def file_write(filename, data):
with open(filename, 'w') as f:
f.write(data)
我當時正在考慮將這些功能一起放入一個單獨的模塊中。 但是,如果我有以下問題,我會很好奇:
問題:-將通用實用程序功能分組的pythonic方法是什么? 我應該創建一個單獨的模塊嗎? 很好奇其他人正在組織這種類型的代碼。
我認為它與Python沒有太大關系,這更多是設計決定。
僅對於這些行,我將不創建單獨的模塊。 但是,如果您使用它2至3次,我將不會復制代碼。 如果以后要更改某些內容,則只需進行一項更改,即可保持功能的一致性。
而且這些方法似乎非常通用,因此您以后可以在其他項目中輕松使用它們。
我假設您想將它們@static_method
靜態( @static_method
)。
我主要要做的是按類型對通用實用程序類進行分組,即在您的情況下,一個文件用於字典(具有1個方法),而一個文件用於文件(具有2個方法)。 以后可能會添加更多方法,但功能會按類型/用途分組。
在python中,我們有一個叫做Package的東西(一個通常的文件夾,帶有一個名為__init__.py
的空文件),它用於包含所有模塊,因此我們會創建某種名稱間隔。
您的應用程序可以使用來訪問其自己的名稱空間。
例如具有以下文件
MyPackage/__init__.py (empty)
MyPackage/webapp.py (your web application)
MyPackage/utils.py (generic utilities)
在webapp.py中,您可以擁有類似的內容
from .utils import *
或一一列出
from .utils import file_read, file_write
注意utils之前的點前綴
您可以采取一些措施來減少模塊文件的數量,同時保留模塊的子分類。.創建多級模塊函數:myModule.Hash。<> myModule.FileIO。<>
這樣,您可以根據自己的喜好導入單個組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.