日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python实例变量初始化_Python – 应该在__init__中初始化所有成员变量

發(fā)布時(shí)間:2025/4/5 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实例变量初始化_Python – 应该在__init__中初始化所有成员变量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

也許這更像是一個(gè)樣式問(wèn)題,而不是技術(shù)問(wèn)題,但我有一個(gè)帶有幾個(gè)成員變量的python類,我想讓它工作,以便在用戶首次創(chuàng)建類的實(shí)例時(shí)初始化一些成員變量(即在__init__函數(shù)中)我希望從稍后將調(diào)用的成員函數(shù)的參數(shù)定義其他成員變量.所以我的問(wèn)題是我應(yīng)該初始化__init__函數(shù)中的所有成員變量(并將稍后定義的變量設(shè)置為虛擬值)或者在__init__函數(shù)中初始化一些變量,在稍后的函數(shù)中初始化一些變量.我意識(shí)到這可能很難理解,所以這里有幾個(gè)例子.

此示例最初在__init__函數(shù)中將var3設(shè)置為0,然后在my_funct函數(shù)中將其設(shè)置為所需的值.

class myClass(object):

def __init__(self,var1,var2):

self.var1=var1

self.var2=var2

self.var3=0

def my_funct(self,var3):

self.var3=var3

在這個(gè)例子中,__ init__函數(shù)中根本沒(méi)有定義var3

class myClass(object):

def __init__(self,var1,var2):

self.var1=var1

self.var2=var2

def my_funct(self,var3):

self.var3=var3

我不認(rèn)為任何一種方式都會(huì)產(chǎn)生很大的不同(可能在內(nèi)存使用方面略有不同).但我想知道其中一個(gè)是否因?yàn)槟承┰蚨鴥?yōu)先于另一個(gè).

解決方法:

在面向?qū)ο蟮木幊讨?開發(fā)人員應(yīng)確保在實(shí)例化之后和方法完成之后對(duì)象始終處于一致?tīng)顟B(tài).除此之外,您可以根據(jù)自己的意愿自由開發(fā)課程(請(qǐng)記住子類化/覆蓋等的某些原則).

當(dāng)您在__init__之外設(shè)置實(shí)例變量時(shí),諸如Pylint之類的工具將發(fā)出警告.可以說(shuō),在__init__中設(shè)置所有實(shí)例變量都比較清晰,但這并不是必須始終遵守的規(guī)則.

標(biāo)簽:python,oop,instance-variables

來(lái)源: https://codeday.me/bug/20190930/1835236.html

總結(jié)

以上是生活随笔為你收集整理的python实例变量初始化_Python – 应该在__init__中初始化所有成员变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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