說說在 Python 中如何導入類

說說在 Python 中如何導入類

隨著我們不斷地在一個文件中添加新的功能, 就會使得文件變得很長。 即便使用了繼承,也抑制不住類的成長。為了解決這一問題,我們可以將類存儲在模塊中, 然後在主程序中導入所需的模塊,這樣可以讓文件儘可能保持整潔,從而實現更好的管理。

導入類是一種很有效的編程方式。 這樣我們就可以把大部分邏輯存儲在獨立的文件中,然後在主程序編寫高級邏輯咯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 導入一個模塊多個類

可以根據需要,在同一個模塊中定義任意數量的類,不過這些在同一個模塊中的類最好是相關的。

記得關注小編後私信【學習】領取Python學習教程哦。

我們在 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 print_privileges(self):
'''打印擁有的權限'''
print(self.privileges.contents)
...
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
p=Privilege(["刪除賬號權限"])
print('權限內容:'+str(p.contents))

運行結果:

權限內容:['刪除賬號權限']

4 導入模塊

我們還可以一次性導入整個模塊, 這需要使用句點表示法來調用相應的類:

import User
...
p=User.Privilege(["刪除賬號權限"])
...

4 導入所有類

from User import *

非必要,不使用這種導入方式,因為:

通過文件開頭定義良好的 import 語句, 我們就可以清楚地知道使用了哪些類。但這種導入方式沒有提供這種好處。

如果不小心導入了一個與本程序文件中同名的類, 就會引發難以診斷的錯誤。

如果確實需要從一個模塊中導入很多類,那麼建議導入整個模塊, 然後使用 module_name.class_name 語法來調用它們。

5 在模塊中導入另一個模塊

為了避免模塊太大或者保證模塊中的類都是相關的, 這時就需要將類分散到多個模塊中。這樣, 可能一個模塊中的類會依賴另一個模塊中的類。這種場景下, 我們就會在一個模塊中導入另一個模塊。因為導入語法相同,所以在此就不贅述啦O(∩_∩)O~

建議一開始讓代碼結構儘可能簡單。 即先儘可能在一個文件中完成所有的工作, 確定一切都能滿足業務要求正確執行後,再將類移到獨立的模塊中。

記得關注小編後私信【學習】領取Python學習教程哦。

說說在 Python 中如何導入類


分享到:


相關文章: