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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 在python代碼中加入環(huán)境變量的語句操作
- Python基礎(chǔ)知識之變量的詳解
- python3 刪除所有自定義變量的操作
- 完美處理python與anaconda環(huán)境變量的沖突問題
- Python全局變量global關(guān)鍵字詳解
- python子類如何繼承父類的實(shí)例變量
- Python中全局變量和局部變量的理解與區(qū)別
- 詳解python的變量緩存機(jī)制
- python安裝及變量名介紹詳解
- Python如何批量生成和調(diào)用變量
- python小技巧——將變量保存在本地及讀取
- Python判斷變量是否是None寫法代碼實(shí)例
- 淺談對Python變量的一些認(rèn)識理解
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)之雙向鏈表詳解
單鏈表只有一個(gè)指向直接后繼的指針來表示結(jié)點(diǎn)間的邏輯關(guān)系,可以方便的從任一結(jié)點(diǎn)開始查找其后繼結(jié)點(diǎn),但要找前驅(qū)結(jié)點(diǎn)則比較困難,雙向鏈表是為了解決這一問題,使用兩個(gè)指針表示結(jié)點(diǎn)間的邏輯關(guān)系。本文將重點(diǎn)為大家介紹雙向鏈表的相關(guān)操作,需要的可以參考一下2022-01-01Django返回HTML文件的實(shí)現(xiàn)方法
這篇文章主要介紹了Django返回HTML文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python 定時(shí)器,輪詢定時(shí)器的實(shí)例
今天小編就為大家分享一篇python 定時(shí)器,輪詢定時(shí)器的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02PyTorch清理CPU緩存的實(shí)現(xiàn)步驟
在使用PyTorch進(jìn)行深度學(xué)習(xí)時(shí),頻繁的數(shù)據(jù)和計(jì)算可能導(dǎo)致CPU緩存滿載,影響性能和內(nèi)存使用,適時(shí)清理CPU緩存有助于管理內(nèi)存占用,下面就來介紹一下如何使用2024-09-09Python用zip函數(shù)同時(shí)遍歷多個(gè)迭代器示例詳解
這篇文章主要給大家進(jìn)行介紹了Python如何用zip函數(shù)同時(shí)遍歷多個(gè)迭代器,文中給出了示例以及原理和注意事項(xiàng),相信會對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11Python3.6實(shí)現(xiàn)根據(jù)電影名稱(支持電視劇名稱),獲取下載鏈接的方法
這篇文章主要介紹了Python3.6實(shí)現(xiàn)根據(jù)電影名稱(支持電視劇名稱),獲取下載鏈接的方法,涉及Python爬蟲與正則相關(guān)操作技巧,需要的朋友可以參考下2019-08-08