Tôi gặp khó khăn trong việc hiểu các tình huống sử dụng hoặc mục tiêu thiết kế của các tệp __init__.py
của python trong các dự án của tôi.sử dụng __init__.py
Giả sử rằng tôi có 'mô hình' thư mục (ám chỉ như là một gói), trong đó có các tập tin sau đây
__init__.py
meta.py
solrmodel.py
mongomodel.py
samodel.py
tôi thấy hai cách sử dụng __init__.py
:
tôi có chung một định nghĩa mà cần phải được sử dụng trong
solrmodel.py
,mongomodel.py
,samodel.py
. Tôi có thể sử dụng__init__.py
làm định nghĩa cơ sở/phổ biến cho tất cả các lớp * model.py không? Điều này có nghĩa là tôi phải nhậpmodel/__init__.py
.Hoặc, các
__init__.py
trách nhiệm đã nhập khẩu các định nghĩa của solrmodel.py, mongomodel.py, samodel.py ở riêng của mình và nó cho phép việc nhập khẩu dễ dàng của các lớp học hoặc chức năng như thế này:# file: __init__.py from mongomodel import * from solrmodel import * from samodel import *
(Tôi ý thức rằng
import *
không được khuyến nghị và tôi chỉ sử dụng nó làm quy ước)
Tôi không thể quyết định giữa hai trường hợp trên. Có nhiều tình huống sử dụng hơn cho __init__.py
và bạn có thể giải thích cách sử dụng không?
Dường như stackoverflow có vấn đề trong hiển thị đánh dấu. trong khi chỉnh sửa nó cho thấy \ __ init__.py nhưng trong khi hiển thị nó cho thấy _init_.py. Ai đó có thể sửa chữa quy ước \ __ init__.py không? –
Sử dụng backticks để đặt nó vào một khối mã, như sau: '\' __init __. Py \ ''. hoặc sử dụng \ như '\\ _ \\ _ init \\ _ \\ _. py' cho \ _ \ _ init \ _ \ _. py. Dấu gạch dưới được sử dụng để in nghiêng. – Ponkadoodle