python实例变量初始化_Python – 应该在__init__中初始化所有成员变量
也許這更像是一個(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)題。
- 上一篇: python函数式编程思想_以pytho
- 下一篇: htmlcss实例小项目_HTMLCSS