小編給大家分享一下python導(dǎo)入類的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為南岳等服務(wù)建站,南岳等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為南岳企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
導(dǎo)入類是一種很有效的編程方式。 這樣我們就可以把大部分邏輯存儲(chǔ)在獨(dú)立的文件中,然后在主程序編寫高級(jí)邏邏輯。
1 導(dǎo)入一個(gè)類
假設(shè)有一個(gè) User 類,文件名為 User.py,這個(gè)待導(dǎo)入的文件,一般稱為模塊:
class User(): '''賬號(hào)信息''' def __init__(self, name, pwd): '''初始化''' self.name = name self.pwd = pwd # 登陸次數(shù) self.login_count = 0 def print_login_count(self): '''打印登陸次數(shù)''' print('登陸次數(shù)=' + str(self.login_count)) def update_login_count(self, num): '''更新登陸次數(shù)''' self.login_count = num def valid(self): '''是否驗(yàn)證通過''' print(self.name + ' 驗(yàn)證通過')
我們?cè)俣x一個(gè)名為 deniro.py 的文件,來導(dǎo)入剛剛定義的 User 類:
from User import User deniro = User('deniro', '1') print('賬號(hào)名:' + deniro.name)
運(yùn)行結(jié)果
賬號(hào)名:deniro
2 導(dǎo)入一個(gè)模塊多個(gè)類
可以根據(jù)需要,在同一個(gè)模塊中定義任意數(shù)量的類,不過這些在同一個(gè)模塊中的類最好是相關(guān)的。
我們?cè)?User.py 中定義了一個(gè) Privilege 類,并作為 User 類的屬性:
class User(): '''賬號(hào)信息''' def __init__(self, name, pwd): '''初始化''' self.name = name self.pwd = pwd # 登陸次數(shù) self.login_count = 0 # 擁有的權(quán)限 self.privileges = Privilege(['修改某某賬號(hào)密碼', '禁用某某賬號(hào)']) def print_privileges(self): '''打印擁有的權(quán)限''' print(self.privileges.contents) ... class Privilege(): '''權(quán)限''' def __init__(self, contents): self.contents = contents
然后在新的文件中調(diào)用它:
# 導(dǎo)入一個(gè)類 from User import User deniro = User('deniro', '1') print('擁有的權(quán)限:' + str(deniro.privileges.contents))
運(yùn)行結(jié)果
擁有的權(quán)限:['修改某某賬號(hào)密碼', '禁用某某賬號(hào)']
3 導(dǎo)入多個(gè)類
可以在一個(gè)模塊中導(dǎo)入多個(gè)類, 用逗號(hào)分隔這些需要導(dǎo)入類。 導(dǎo)入后, 就可以根據(jù)應(yīng)用場(chǎng)景,來創(chuàng)建任意數(shù)量的類實(shí)例。
from User import User,Privilege
from User import User,Privilege p=Privilege(["刪除賬號(hào)權(quán)限"]) print('權(quán)限內(nèi)容:'+str(p.contents))
運(yùn)行結(jié)果
權(quán)限內(nèi)容:['刪除賬號(hào)權(quán)限']
4 導(dǎo)入模塊
我們還可以一次性導(dǎo)入整個(gè)模塊, 這需要使用句點(diǎn)表示法來調(diào)用相應(yīng)的類:
import User ... p=User.Privilege(["刪除賬號(hào)權(quán)限"]) ...
導(dǎo)入所有類
from User import *
非必要,不使用這種導(dǎo)入方式,因?yàn)椋?/p>
通過文件開頭定義良好的 import 語句, 我們就可以清楚地知道使用了哪些類。但這種導(dǎo)入方式?jīng)]有提供這種好處。
如果不小心導(dǎo)入了一個(gè)與本程序文件中同名的類, 就會(huì)引發(fā)難以診斷的錯(cuò)誤。
如果確實(shí)需要從一個(gè)模塊中導(dǎo)入很多類,那么建議導(dǎo)入整個(gè)模塊, 然后使用 module_name.class_name 語法來調(diào)用它們。
5 在模塊中導(dǎo)入另一個(gè)模塊
為了避免模塊太大或者保證模塊中的類都是相關(guān)的, 這時(shí)就需要將類分散到多個(gè)模塊中。這樣, 可能一個(gè)模塊中的類會(huì)依賴另一個(gè)模塊中的類。這種場(chǎng)景下, 我們就會(huì)在一個(gè)模塊中導(dǎo)入另一個(gè)模塊。因?yàn)閷?dǎo)入語法相同,所以在此就不贅述啦O(∩_∩)O~
建議一開始讓代碼結(jié)構(gòu)盡可能簡(jiǎn)單。 即先盡可能在一個(gè)文件中完成所有的工作, 確定一切都能滿足業(yè)務(wù)要求正確執(zhí)行后,再將類移到獨(dú)立的模塊中。
看完了這篇文章,相信你對(duì)python導(dǎo)入類的方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!