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

Python構造函數(shù)與析構函數(shù)超詳細分析

 更新時間:2022年11月09日 15:54:12   作者:Python熱愛者  
在python之中定義一個類的時候會在類中創(chuàng)建一個名為__init__的函數(shù),這個函數(shù)就叫做構造函數(shù)。它的作用就是在實例化類的時候去自動的定義一些屬性和方法的值,而析構函數(shù)恰恰是一個和它相反的函數(shù),這篇文章主要介紹了Python構造函數(shù)與析構函數(shù)

1.構造函數(shù)

__init__(self), 這個方法就是構造函數(shù),在實例化的時候自動調用。

所有如果這個函數(shù)內有打印的方法,當實例出來的時候會打印里面的信息。

__init__方法的第一個參數(shù)永遠都是self,表示創(chuàng)建實例本身,在__init__方法內部,可以把各種屬性綁定到self,因為self指向創(chuàng)建的實例本身。

有了__init__方法,在創(chuàng)建實例的時候,就不能傳入空的參數(shù)了,必須傳入與__init__方法匹配的參數(shù),但self不需要傳,Python解釋器自己會把實例變量傳進去。

def __init__():
        pass
lass Baby:
    def __init__(self,name):#構造函數(shù)
        self.name = name
    def cry(self):
        self.action = '哭了'
        print(self.action)
feng = Baby('小紅')
print(feng.name)#實例化時構造函數(shù)自動執(zhí)行,
print(feng.action)#cry方法未被執(zhí)行,直接調用feng.action會報錯,object has no attribute對象沒有該屬性

由于cry方法未被執(zhí)行,直接調用feng.action會報錯,object has no attribute對象沒有該屬性。解決方法有:

(1)在實例化對象后,先調用cry這個方法,在去打印feng.action屬性

class Baby:
    def __init__(self,name):#構造函數(shù)
        self.name = name
    def cry(self):
        self.action = '哭了'
        print(self.action)
feng = Baby('小紅')
feng.cry()#先調用cry這個方法
print(feng.action)

(2)將cry這個方法放在構造函數(shù)里,這樣實例化的時候函數(shù)會被執(zhí)行,feng.action屬性就生成了

class Baby:
    def __init__(self,name):#構造函數(shù)
        self.name = name
        self.cry()#將cry這個方法放在構造函數(shù)里
    def cry(self):
        self.action = '哭了'
        print(self.action)
feng = Baby('小紅')
print(feng.action)

2.析構函數(shù)

__del__(self), 這個方法就是析構函數(shù),是在實例被銷毀時自動調用的。

當使用del 刪除對象時,會調用他本身的析構函數(shù),另外當對象在某個作用域中調用完畢,在跳出其作用域的同時析構函數(shù)也會被調用一次,這樣可以用來釋放內存空間。

析構函數(shù):實例被銷毀的時候執(zhí)行的,不是必須

 def __del__():
        pass
import pymysql
class MySQL(object):
    def __init__(self,host,user,passwd,db,port=3306,charset='utf8'):#構造函數(shù),類實例化的時候執(zhí)行
        try:
            self.conn = pymysql.connect(
                host = host,user=user,passwd=passwd,db=db,port=port,charset=charset,
                autocommit=True  # 自動提交,執(zhí)行insert,update語句時,可以自動提交
            )
        except Exception as e:
            print('數(shù)據(jù)庫連接失敗,%s'%e)
        else:
            self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
    def __del__(self):#析構函數(shù),實例被銷毀的時候執(zhí)行
        self.cur.close()
        self.conn.close()
        print('數(shù)據(jù)庫連接關閉')
    def ex_sql(self,sql):
        try:
            self.cur.execute(sql)
        except Exception as e:
            print('sql語句錯誤,%s'%sql)
        else:
            self.res = self.cur.fetchall()
            return self.res #有沒有返回值都可以
my = MySQL('127.0.0.1', 'root', '123456', 'data')
my.ex_sql('select * from stu')
print(my.res)#可以用實例屬性取值
# print(my.ex_sql('select * from stu'))#也可以用實例方法的返回值
print('我是最后一行代碼')#執(zhí)行完最后一行代碼,數(shù)據(jù)庫連接關閉

到此這篇關于Python構造函數(shù)與析構函數(shù)超詳細分析的文章就介紹到這了,更多相關Python構造函數(shù)與析構函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 用Python實現(xiàn)最速下降法求極值的方法

    用Python實現(xiàn)最速下降法求極值的方法

    今天小編就為大家分享一篇用Python實現(xiàn)最速下降法求極值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Django mysqlclient安裝和使用詳解

    Django mysqlclient安裝和使用詳解

    這篇文章主要介紹了Django mysqlclient安裝和使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Python、PyCharm安裝及使用方法(Mac版)詳解

    Python、PyCharm安裝及使用方法(Mac版)詳解

    這篇文章主要為大家詳細介紹了Mac版的Python、PyCharm安裝及使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 爬蟲框架 Feapder 和 Scrapy 的對比分析

    爬蟲框架 Feapder 和 Scrapy 的對比分析

    本篇文章在源碼層面比對 feapder、scrapy 、scrapy-redis 的設計,閱讀本文后,會加深您對 scrapy 以及 feapder 的了解,以及為什么推薦使用 feapder,剛興趣的朋友可以參考下面文章內容
    2021-09-09
  • python實現(xiàn)飛機大戰(zhàn)(面向過程)

    python實現(xiàn)飛機大戰(zhàn)(面向過程)

    這篇文章主要為大家詳細介紹了python面向過程實現(xiàn)飛機大戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 深入理解Python3 內置函數(shù)大全

    深入理解Python3 內置函數(shù)大全

    本篇文章主要介紹了Python3 內置函數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 使用Python創(chuàng)建一個撲克牌生成器

    使用Python創(chuàng)建一個撲克牌生成器

    撲克牌是一種廣泛使用的娛樂工具,通常用于各種紙牌游戲,本文給大家介紹了如何使用Python創(chuàng)建一個撲克牌生成器,需要的朋友可以參考下
    2025-04-04
  • pandas中DataFrame.to_dict()的實現(xiàn)示例

    pandas中DataFrame.to_dict()的實現(xiàn)示例

    本文主要介紹了pandas中DataFrame.to_dict()的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-08-08
  • 使用PyQt5實現(xiàn)一個鼠標連點器

    使用PyQt5實現(xiàn)一個鼠標連點器

    這篇文章主要為大家詳細介紹了如何使用PyQt5實現(xiàn)一個鼠標連點器,從而對QVBoxLayout、QHBoxLayout和QStackedWidget進行一個回顧復習,需要的可以參考一下
    2023-12-12
  • python中的單向鏈表實現(xiàn)

    python中的單向鏈表實現(xiàn)

    大家好,本篇文章主要講的是python中的單向鏈表實現(xiàn),感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01

最新評論

互助| 陕西省| 休宁县| 宁德市| 浪卡子县| 蒙自县| 芜湖县| 改则县| 平潭县| 思茅市| 克东县| 瑞昌市| 容城县| 黄浦区| 浦城县| 凤阳县| 库尔勒市| 永春县| 台南市| 大名县| 镇康县| 德令哈市| 关岭| 西充县| 得荣县| 安庆市| 丰顺县| 奉贤区| 万源市| 南宁市| 开化县| 凤冈县| 喀喇沁旗| 曲靖市| 临泉县| 分宜县| 咸阳市| 余姚市| 黎平县| 宁明县| 长海县|