日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 实例变量_Python的类变量和实例变量详解

發(fā)布時間:2025/3/21 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 实例变量_Python的类变量和实例变量详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Asuka

什么是類變量?

class Student:

name = 'Asuka'

age = '18'

...

上面定義的name和age就是類變量

什么是實例變量?

class Student:

def __init__(self,name,age)

self.name = name

self.age = age

...

上面定義的name和age就是實例變量

類變量和實例變量的區(qū)別和應(yīng)用

類變量為所有實例化后的類共享,有點類似繼承的概念,實例化后,每個實例都會有這個屬性,有種default的意味,可以設(shè)置一個帶默認值的屬性.

實例變量為每個實例化后的類獨有,因為python類實例化之后會自動調(diào)用init方法,如果您在類里面定義了相同的屬性,那么init下的實例變量會重寫相同的類變量.

一般來說,我們更多的運用實例變量,因為按照嚴格的面向?qū)ο笏枷?類的所有屬性都應(yīng)該是實例的,類變量根本就不應(yīng)該存在的,不過類變量偶爾還是有一點用處的,比如設(shè)置默認值和常量.

關(guān)于dict的說明

大家在序列化類,比如轉(zhuǎn)成json格式,許多同學(xué)會想到先把類轉(zhuǎn)成dict,然后再轉(zhuǎn)成json.于是,同學(xué)們可能會考慮用dict.

我想告訴同學(xué)們的一句話是,使用dict方法只能序列化實例變量,無法序列化類變量.

如何寫出一個優(yōu)美的面向?qū)ο蟮念?/p>

下面這句是關(guān)鍵

類應(yīng)該保存描述自身的特點和能夠?qū)崿F(xiàn)的行為.

1.盡量多使用實例變量,不要總想把類里面的資源return到外部

2.類下面的函數(shù)應(yīng)該有操作實例變量的行為,也就是通常所說的方法

3.類里面不能只有staticmethod,classmethod這類的方法,因為這些還是面向過程的思維,不要一步步想著寫方法,根本沒用到自己實例的屬性

4.面向?qū)ο蟮乃季S其實就是一種造物主的思維,我們思考問題的時候要有一些靈性,少了什么,我們就直接創(chuàng)造一個出來就行了,別和解數(shù)學(xué)題一樣,總是在想求解方程中x,y,z等于什么.

如果大家有過python web編程經(jīng)驗的話,就和編寫視圖函數(shù)是一樣的,我們編寫視圖函數(shù)的時候總是會事先假象我們有驗證層,模型層,視圖模型層等等分層,我們先定好整體的邏輯,事后再補齊對應(yīng)層的函數(shù),就和造物主有點類似,少了什么我們直接new一個就行了(為什么不能new一個對象出來呢?).

視圖函數(shù)內(nèi)部總是會實例化一些驗證實例(wtforms),模型實例(sqlalchemy),業(yè)務(wù)邏輯等等內(nèi)容,這些內(nèi)容本來都是不存在的,都是我們在其他地方定義好的類或者函數(shù),卻直接在視圖函數(shù)中用上來了.

Python 3.7的dataclass

from dataclasses import dataclass

@dataclass

class Student:

name:str

age:int

...

python 3.7版本中加了一個令人激動的dataclass裝飾器,簡單的實現(xiàn)類比上面,如果同學(xué)們比較反感編寫構(gòu)造函數(shù)時候要編寫大量重復(fù)的代碼,可以嘗試下dataclass裝飾器.

這個裝飾器,不僅僅是簡寫代碼,直觀顯示數(shù)據(jù)類型,還可以進行數(shù)據(jù)比較,創(chuàng)建不可變屬性,使用post_init預(yù)處理變量等等好處.

如果想要更詳細了解這個新功能的細節(jié),可以看下這篇文章--->https://linux.cn/article-9974-1.html

最后的留言

如果大家有什么疑問,可以在下方留言或者私信我,看到我會回復(fù)的(就是很難及時回復(fù)了).

如果我上面說的有什么錯誤,歡迎大家指正我(杠起來).

這是我的個人站點——一路香蕉皮,有興趣可以點擊查看下,里面有軟件,教程,圖片福利分享

總結(jié)

以上是生活随笔為你收集整理的python 实例变量_Python的类变量和实例变量详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。