您好,登錄后才能下訂單哦!
小編給大家分享一下python導入類的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
導入類是一種很有效的編程方式。 這樣我們就可以把大部分邏輯存儲在獨立的文件中,然后在主程序編寫高級邏邏輯。
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 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
from User import User,Privilege p=Privilege(["刪除賬號權限"]) print('權限內容:'+str(p.contents))
運行結果
權限內容:['刪除賬號權限']
4 導入模塊
我們還可以一次性導入整個模塊, 這需要使用句點表示法來調用相應的類:
import User ... p=User.Privilege(["刪除賬號權限"]) ...
導入所有類
from User import *
非必要,不使用這種導入方式,因為:
通過文件開頭定義良好的 import 語句, 我們就可以清楚地知道使用了哪些類。但這種導入方式沒有提供這種好處。
如果不小心導入了一個與本程序文件中同名的類, 就會引發難以診斷的錯誤。
如果確實需要從一個模塊中導入很多類,那么建議導入整個模塊, 然后使用 module_name.class_name 語法來調用它們。
5 在模塊中導入另一個模塊
為了避免模塊太大或者保證模塊中的類都是相關的, 這時就需要將類分散到多個模塊中。這樣, 可能一個模塊中的類會依賴另一個模塊中的類。這種場景下, 我們就會在一個模塊中導入另一個模塊。因為導入語法相同,所以在此就不贅述啦O(∩_∩)O~
建議一開始讓代碼結構盡可能簡單。 即先盡可能在一個文件中完成所有的工作, 確定一切都能滿足業務要求正確執行后,再將類移到獨立的模塊中。
看完了這篇文章,相信你對python導入類的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。