溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中導(dǎo)入類的案例分析

發(fā)布時(shí)間:2021-02-05 13:40:22 來源:億速云 閱讀:180 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python中導(dǎo)入類的案例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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)限"])
...

4 導(dǎo)入所有類

from User import *

非必要,不使用這種導(dǎo)入方式,因?yàn)椋?/p>

  • 通過文件開頭定義良好的 import 語(yǔ)句, 我們就可以清楚地知道使用了哪些類。但這種導(dǎo)入方式?jīng)]有提供這種好處。

  • 如果不小心導(dǎo)入了一個(gè)與本程序文件中同名的類, 就會(huì)引發(fā)難以診斷的錯(cuò)誤。

如果確實(shí)需要從一個(gè)模塊中導(dǎo)入很多類,那么建議導(dǎo)入整個(gè)模塊, 然后使用 module_name.class_name 語(yǔ)法來調(diào)用它們。

5 在模塊中導(dǎo)入另一個(gè)模塊

為了避免模塊太大或者保證模塊中的類都是相關(guān)的, 這時(shí)就需要將類分散到多個(gè)模塊中。這樣, 可能一個(gè)模塊中的類會(huì)依賴另一個(gè)模塊中的類。這種場(chǎng)景下, 我們就會(huì)在一個(gè)模塊中導(dǎo)入另一個(gè)模塊。因?yàn)閷?dǎo)入語(yǔ)法相同,所以在此就不贅述啦O(∩_∩)O~

建議一開始讓代碼結(jié)構(gòu)盡可能簡(jiǎn)單。 即先盡可能在一個(gè)文件中完成所有的工作, 確定一切都能滿足業(yè)務(wù)要求正確執(zhí)行后,再將類移到獨(dú)立的模塊中。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python中導(dǎo)入類的案例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI