前言
隨著我們不斷地在乙個檔案中新增新的功能, 就會使得檔案變得很長。 即便使用了繼承,也抑制程式設計客棧不住類的成長。為了解決這一問題,我們可以將類儲存在模組中, 然後在主程式中匯入所需的模組,這樣可以讓檔案盡可能保持整潔,從而實現更好的管理。
匯入類是一種很有效的程式設計方式。 這樣我們就可以把大部分邏輯儲存在獨立的檔案中,然後在主程式編寫高階邏輯咯o(∩_∩)o哈哈~
1 匯入乙個類
假設有乙個 user 類,檔名為 user.py,這個待匯入的檔案,一般稱為模組:
class user():
'''賬號資訊'''
def __init__(self, name, pwd):
'''初始化'''
self.name = name
self.pwd = pwd
# 登陸次數
self.login_count = 0
def print_login_count(self):
'''列印登陸次數'''
print('登陸次數=' + str(self.login_count))
def update_login_count(self, num):
'''更新登陸次數'''
self.login_count = num
def valid(self):
'''是否驗證通過'''
print(self.name + ' 驗證通過')
我們再定義乙個名為 deniro.py 的檔案,來匯入剛剛定義的 user 類:
from user import user
deniro = user('deniro', '1')
print('賬號名:' + deniro.name)
執行結果:
賬號名:deniro
2 匯入乙個模組多個類
可以根據需要,在同乙個模組中定義任意數量的類,不過這些在同乙個模組中的類最好是相關的。
我們在 user.py 中定義了乙個 privilege 類,並作為 user 類的屬性:
class user():
'''賬號資訊'''
def __init__(self程式設計客棧, name, pwd):
'''初始化'''
self.name = name
self.pwd = pwd
# 登陸次數
self.login_count = 0
# 擁有的許可權
self.privileges = privilege(['修改某某賬號密碼', '禁用某某賬號'])
def www.cppcns.comprint_privileges(self):
'''列印擁有的許可權'''
print(self
...class privilege():
'''許可權'''
def __init__(self, contents):
self.contents = contents
然後在新的檔案中呼叫它:
# 匯入乙個類
from user import user
deniro = user('deniro', '1')
print('擁有的許可權:' + str(deniro.privileges.contents))
執行結果:
擁有的許可權:['修改某某賬號密碼', '禁用某某賬號']
3 匯入多個類
可以在乙個模組中匯入多個類, 用逗號分隔這些需要匯入類。 匯入後, 就可以根據應用場景,來建立任意數量的類例項。
from user import user,privilege
from user import user,privilege
p=privilege(["刪除賬號許可權"])
print('許可權內容:'+str(p.contents))
執行結果:
許可權內容:['刪除賬號許可權']
4 匯入模組
我們還可以一次性匯入整個模組, 這需要使用句點表示法來呼叫相應的類:
import user
...p=user.privilege(["刪除賬號許可權"])
...4 匯入所有類rllmw
from user import *
非必要,不使用這種匯入方式,因為:
如果確實需要從乙個模組中匯入很多類,那麼建議匯入整個模組, 然後使用 module_name.class_name 語法來呼叫它們。
5 在模組中匯入另乙個模組
為了避免模組太大或者保證模組中的類都是相關的, 這時就需要將類分散到多個模組中。這樣, 可能乙個模組中的類會依賴另乙個模組中的類。這種場景下, 我們就會在乙個模組中匯入另乙個模組。因為匯入語法相同,所以在此就不贅述啦o(∩_∩)o~
建議一開始讓**結構盡可能簡單。 即先盡可能在乙個檔案中完成所有的工作, 確定一切都能滿足業務要求正確執行後,再將類移到獨立的模組中。
總結本文標題: python中如何匯入類示例詳解
本文位址:
Python中bisect的用法及示例詳解
bisect是python內建模spwmnd塊,用於有序序列的插入和查詢。查詢import bisect程式設計客棧 a 1,4,6,8,12,15,20 posit bisect.bisect a,13 print position 用可變序列內建的insert方法插入 a.insert posi...
python程式設計普通及類和靜態方法示例詳解
目錄 本文主要講述了python類中的三類常用方法,普通方法 類方法和靜態方法。本文主要參考了httywerdksps 強烈推薦一看這個系列的所有 import sys sys.version 結果為 3.6.1 anaconda 4.4.0 64 bit default,may 11 2017,1...
python程式設計中簡潔優雅的推導式示例詳解
目錄 python語言有一種獨特的推導式語法,相當於語法糖的存在,可以幫助你在某些場合寫出較為精簡酷炫的 但沒有它,也不會有太多影響。python語言有幾種不同型別的推導式。列表推導式是一種快速生成列表的方式。其形式是用方括號括起來的一段語句,如下例子所示 lis x x for x in rang...