python“靜態(tài)”變量、實(shí)例變量與本地變量的聲明示例
前言
雖然各種編程語言之間大部分語法存在共通的地方,但是在一些細(xì)節(jié)的處理上還是千差萬別
才接觸Python不久(之前是學(xué)Java的),實(shí)在想吐槽一下語言之間編碼格式上的不統(tǒng)一問題,比如Java用分號分隔代碼塊,Python用空格,這無形之中增加了編碼人員的學(xué)習(xí)成本
作為初學(xué)人員,還是老老實(shí)實(shí)記錄一下學(xué)習(xí)過程中的坑:)
1. “靜態(tài)”變量的聲明
這里的靜態(tài)變量是借用Java中靜態(tài)變量的概念(不知道Python中的具體概念是什么),指既可以通過類名直接進(jìn)行訪問,也可以通過類的實(shí)例進(jìn)行訪問的變量。這種變量的聲明很簡單,直接在類代碼塊中設(shè)置變量即可,不需要任何關(guān)鍵字
Java中這樣聲明的變量是實(shí)例變量,只能通過對象實(shí)例進(jìn)行訪問
class Test: # 這是一個(gè)“靜態(tài)”變量 className = 'Test'
2. 實(shí)例變量的聲明
實(shí)例變量是指必須通過類的實(shí)例去訪問的變量
實(shí)例變量的聲明比較神奇,在任意的方法中,在變量名稱前面加上“self.”,該變量就變成了實(shí)例變量。這樣這個(gè)變量在其他的方法中也同樣可以使用了(個(gè)人感覺有點(diǎn)奇葩啊有木有)
所以實(shí)例變量的聲明有一點(diǎn)特別重要,如果該實(shí)例變量會做跨方法的使用,那么實(shí)例變量聲明的方法一定要在實(shí)例變量使用的方法調(diào)用之前執(zhí)行
def __init__(self): # 這是一個(gè)實(shí)例變量 self.hello = Hello()
3. 本地變量的聲明
本地變量是僅在類的方法中使用的變量
聲明方法也很簡單,直接在類的方法中定義變量即可
def who(self): # 這是一個(gè)本地變量 name = 'Cain' return name
最后是一個(gè)完整的使用示例:
一個(gè)hello類:
class Hello: def who(self): # 這是一個(gè)本地變量 name = 'Cain' return name
一個(gè)Test類(其中會用到hello類):
# -*- coding:UTF-8 -*-from hello import Hello class Test: # 這是一個(gè)“靜態(tài)”變量 className = 'Test' def __init__(self): # 這是一個(gè)實(shí)例變量 self.hello = Hello() def sayName(self): # 類的方法中訪問實(shí)例變量 print('My name is ' + self.hello.who()) if __name__ == '__main__': test = Test() test.sayName() test1 = Test() # 通過類名直接訪問靜態(tài)變量 print(Test.className) # 通過實(shí)例名訪問靜態(tài)變量 print(test.className) # 通過實(shí)例名訪問實(shí)例變量 print(test.hello.who()) # 通過類名直接訪問實(shí)例變量會報(bào)錯(cuò)!!! # print(Test.hello.who())
總結(jié)
到此這篇關(guān)于python“靜態(tài)”變量、實(shí)例變量與本地變量聲明的文章就介紹到這了,更多相關(guān)python靜態(tài)變量、實(shí)例變量與本地變量聲明內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 使用Python webdriver圖書館搶座自動預(yù)約的正確方法2. Linux刪除系統(tǒng)自帶版本Python過程詳解3. PHP如何開啟Opcache功能提升程序處理效率4. Python3 json模塊之編碼解碼方法講解5. 在線php代碼縮進(jìn)、代碼美化工具:PHP Formatter6. Android 簡單的實(shí)現(xiàn)滑塊拼圖驗(yàn)證碼功能7. Python 合并拼接字符串的方法8. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條9. Android Studio實(shí)現(xiàn)格式化XML代碼順序10. 淺談由position屬性引申的css進(jìn)階討論

網(wǎng)公網(wǎng)安備