python实例变量初始化_Python – 应该在__init__中初始化所有成员变量
也許這更像是一個樣式問題,而不是技術問題,但我有一個帶有幾個成員變量的python類,我想讓它工作,以便在用戶首次創建類的實例時初始化一些成員變量(即在__init__函數中)我希望從稍后將調用的成員函數的參數定義其他成員變量.所以我的問題是我應該初始化__init__函數中的所有成員變量(并將稍后定義的變量設置為虛擬值)或者在__init__函數中初始化一些變量,在稍后的函數中初始化一些變量.我意識到這可能很難理解,所以這里有幾個例子.
此示例最初在__init__函數中將var3設置為0,然后在my_funct函數中將其設置為所需的值.
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
在這個例子中,__ init__函數中根本沒有定義var3
class myClass(object):
def __init__(self,var1,var2):
self.var1=var1
self.var2=var2
def my_funct(self,var3):
self.var3=var3
我不認為任何一種方式都會產生很大的不同(可能在內存使用方面略有不同).但我想知道其中一個是否因為某些原因而優先于另一個.
解決方法:
在面向對象的編程中,開發人員應確保在實例化之后和方法完成之后對象始終處于一致狀態.除此之外,您可以根據自己的意愿自由開發課程(請記住子類化/覆蓋等的某些原則).
當您在__init__之外設置實例變量時,諸如Pylint之類的工具將發出警告.可以說,在__init__中設置所有實例變量都比較清晰,但這并不是必須始終遵守的規則.
標簽:python,oop,instance-variables
來源: https://codeday.me/bug/20190930/1835236.html
總結
以上是生活随笔為你收集整理的python实例变量初始化_Python – 应该在__init__中初始化所有成员变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python函数式编程思想_以pytho
- 下一篇: python中matrix函数_使用py