最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中如何導(dǎo)入類(lèi)示例詳解

 更新時(shí)間:2019年04月17日 10:22:55   作者:deniro  
這篇文章主要給大家介紹了關(guān)于Python中如何導(dǎo)入類(lèi)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

隨著我們不斷地在一個(gè)文件中添加新的功能, 就會(huì)使得文件變得很長(zhǎng)。 即便使用了繼承,也抑制不住類(lèi)的成長(zhǎng)。為了解決這一問(wèn)題,我們可以將類(lèi)存儲(chǔ)在模塊中, 然后在主程序中導(dǎo)入所需的模塊,這樣可以讓文件盡可能保持整潔,從而實(shí)現(xiàn)更好的管理。

導(dǎo)入類(lèi)是一種很有效的編程方式。 這樣我們就可以把大部分邏輯存儲(chǔ)在獨(dú)立的文件中,然后在主程序編寫(xiě)高級(jí)邏輯咯O(∩_∩)O哈哈~

1 導(dǎo)入一個(gè)類(lèi)

假設(shè)有一個(gè) User 類(lèi),文件名為 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)證通過(guò)'''
  print(self.name + ' 驗(yàn)證通過(guò)')

我們?cè)俣x一個(gè)名為 deniro.py 的文件,來(lái)導(dǎo)入剛剛定義的 User 類(lèi):

from User import User


deniro = User('deniro', '1')
print('賬號(hào)名:' + deniro.name)

運(yùn)行結(jié)果:

賬號(hào)名:deniro

2 導(dǎo)入一個(gè)模塊多個(gè)類(lèi)

可以根據(jù)需要,在同一個(gè)模塊中定義任意數(shù)量的類(lèi),不過(guò)這些在同一個(gè)模塊中的類(lèi)最好是相關(guān)的。

我們?cè)?User.py 中定義了一個(gè)  Privilege 類(lèi),并作為 User 類(lèi)的屬性:

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è)類(lèi)
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è)類(lèi)

可以在一個(gè)模塊中導(dǎo)入多個(gè)類(lèi), 用逗號(hào)分隔這些需要導(dǎo)入類(lèi)。 導(dǎo)入后, 就可以根據(jù)應(yīng)用場(chǎng)景,來(lái)創(chuàng)建任意數(shù)量的類(lèi)實(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)表示法來(lái)調(diào)用相應(yīng)的類(lèi):

import User

...

p=User.Privilege(["刪除賬號(hào)權(quán)限"])
...

4 導(dǎo)入所有類(lèi)

from User import *

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

  • 通過(guò)文件開(kāi)頭定義良好的 import 語(yǔ)句, 我們就可以清楚地知道使用了哪些類(lèi)。但這種導(dǎo)入方式?jīng)]有提供這種好處。
  • 如果不小心導(dǎo)入了一個(gè)與本程序文件中同名的類(lèi), 就會(huì)引發(fā)難以診斷的錯(cuò)誤。

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

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

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

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • python?pandas?數(shù)據(jù)排序的幾種常用方法

    python?pandas?數(shù)據(jù)排序的幾種常用方法

    這篇文章主要介紹了python?pandas數(shù)據(jù)排序的幾種常用方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • python入門(mén)教程之識(shí)別驗(yàn)證碼

    python入門(mén)教程之識(shí)別驗(yàn)證碼

    這篇文章主要介紹了python中識(shí)別驗(yàn)證碼的相關(guān)資料,這屬于學(xué)習(xí)python的基本入門(mén)教程,文中介紹的非常詳細(xì),文末也給出了完整的示例代碼,需要的朋友們可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2017-03-03
  • 從零學(xué)python系列之新版本導(dǎo)入httplib模塊報(bào)ImportError解決方案

    從零學(xué)python系列之新版本導(dǎo)入httplib模塊報(bào)ImportError解決方案

    在使用新版python打開(kāi)舊版本代碼的時(shí)候,可能會(huì)有些報(bào)錯(cuò)或者不兼容的情況出現(xiàn),今天我們就來(lái)分析其中的一種情況
    2014-05-05
  • 從0開(kāi)始的Python學(xué)習(xí)014面向?qū)ο缶幊蹋ㄍ扑])

    從0開(kāi)始的Python學(xué)習(xí)014面向?qū)ο缶幊蹋ㄍ扑])

    這篇文章主要介紹了Python面向?qū)ο缶幊?,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python中棧的原理及實(shí)現(xiàn)方法示例

    python中棧的原理及實(shí)現(xiàn)方法示例

    這篇文章主要介紹了python中棧的原理及實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python棧的概念、原理、常見(jiàn)操作方法及相關(guān)使用技巧,需要的朋友可以參考下
    2019-11-11
  • 十個(gè)Python經(jīng)典小游戲的代碼合集

    十個(gè)Python經(jīng)典小游戲的代碼合集

    這篇文章主要為大家分享十個(gè)Python經(jīng)典的小游戲代碼,非常適合Python初學(xué)者練手。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-05-05
  • Python教程pandas數(shù)據(jù)分析去重復(fù)值

    Python教程pandas數(shù)據(jù)分析去重復(fù)值

    Pandas指定行進(jìn)行去重更新值,加載數(shù)據(jù)sample抽樣函數(shù),指定需要更新的值append直接添加append函數(shù)用法,根據(jù)某一列key值進(jìn)行去重key唯一
    2021-09-09
  • 今天 平安夜 Python 送你一頂圣誕帽 @微信官方

    今天 平安夜 Python 送你一頂圣誕帽 @微信官方

    昨晚我的朋友圈是這樣的:請(qǐng)給我一個(gè)圣誕帽@微信官方。好吧,看看python是怎么搞到圣誕帽的。下面跟隨小編一起看看吧
    2017-12-12
  • django從后臺(tái)返回html代碼的實(shí)例

    django從后臺(tái)返回html代碼的實(shí)例

    這篇文章主要介紹了django從后臺(tái)返回html代碼的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • 詳解基于python-django框架的支付寶支付案例

    詳解基于python-django框架的支付寶支付案例

    這篇文章主要介紹了基于python-django框架的支付寶支付案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論

临朐县| 达尔| 和顺县| 拉孜县| 宁国市| 横峰县| 福安市| 鄱阳县| 鞍山市| 和顺县| 邮箱| 长治县| 本溪市| 荃湾区| 汽车| 鹤庆县| 夏津县| 太谷县| 五家渠市| 汾阳市| 华池县| 凤冈县| 丰城市| 报价| 遵义县| 全州县| 安泽县| 普兰店市| 吴堡县| 神农架林区| 城固县| 松阳县| 兴义市| 新疆| 麻城市| 伊宁县| 廉江市| 南涧| 玉龙| 梅河口市| 遵义市|