python“靜態(tài)”變量、實例變量與本地變量的聲明示例
前言
雖然各種編程語言之間大部分語法存在共通的地方,但是在一些細節(jié)的處理上還是千差萬別
才接觸Python不久(之前是學Java的),實在想吐槽一下語言之間編碼格式上的不統(tǒng)一問題,比如Java用分號分隔代碼塊,Python用空格,這無形之中增加了編碼人員的學習成本
作為初學人員,還是老老實實記錄一下學習過程中的坑:)
1. “靜態(tài)”變量的聲明
這里的靜態(tài)變量是借用Java中靜態(tài)變量的概念(不知道Python中的具體概念是什么),指既可以通過類名直接進行訪問,也可以通過類的實例進行訪問的變量。這種變量的聲明很簡單,直接在類代碼塊中設(shè)置變量即可,不需要任何關(guān)鍵字
Java中這樣聲明的變量是實例變量,只能通過對象實例進行訪問
class Test: # 這是一個“靜態(tài)”變量 className = "Test"
2. 實例變量的聲明
實例變量是指必須通過類的實例去訪問的變量
實例變量的聲明比較神奇,在任意的方法中,在變量名稱前面加上“self.”,該變量就變成了實例變量。這樣這個變量在其他的方法中也同樣可以使用了(個人感覺有點奇葩啊有木有)
所以實例變量的聲明有一點特別重要,如果該實例變量會做跨方法的使用,那么實例變量聲明的方法一定要在實例變量使用的方法調(diào)用之前執(zhí)行
def __init__(self): # 這是一個實例變量 self.hello = Hello()
3. 本地變量的聲明
本地變量是僅在類的方法中使用的變量
聲明方法也很簡單,直接在類的方法中定義變量即可
def who(self): # 這是一個本地變量 name = "Cain" return name
最后是一個完整的使用示例:
一個hello類:
class Hello: def who(self): # 這是一個本地變量 name = "Cain" return name
一個Test類(其中會用到hello類):
# -*- coding:UTF-8 -*-
from hello import Hello
class Test:
# 這是一個“靜態(tài)”變量
className = "Test"
def __init__(self):
# 這是一個實例變量
self.hello = Hello()
def sayName(self):
# 類的方法中訪問實例變量
print("My name is " + self.hello.who())
if __name__ == "__main__":
test = Test()
test.sayName()
test1 = Test()
# 通過類名直接訪問靜態(tài)變量
print(Test.className)
# 通過實例名訪問靜態(tài)變量
print(test.className)
# 通過實例名訪問實例變量
print(test.hello.who())
# 通過類名直接訪問實例變量會報錯?。。?
# print(Test.hello.who())
總結(jié)
到此這篇關(guān)于python“靜態(tài)”變量、實例變量與本地變量聲明的文章就介紹到這了,更多相關(guān)python靜態(tài)變量、實例變量與本地變量聲明內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解python數(shù)據(jù)結(jié)構(gòu)和算法
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)和算法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
python爬蟲搭配起B(yǎng)ilibili唧唧的流程分析
這篇文章主要介紹了python爬蟲搭配起B(yǎng)ilibili唧唧的流程分析,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
PyCharm實現(xiàn)遠程調(diào)試的全過程(附圖文講解)
這篇文章主要介紹了PyCharm實現(xiàn)遠程調(diào)試的全過程,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-05-05
一文教會你用Python獲取網(wǎng)頁指定內(nèi)容
Python用做數(shù)據(jù)處理還是相當不錯的,如果你想要做爬蟲,Python是很好的選擇,它有很多已經(jīng)寫好的類包,只要調(diào)用即可完成很多復雜的功能,下面這篇文章主要給大家介紹了關(guān)于Python獲取網(wǎng)頁指定內(nèi)容的相關(guān)資料,需要的朋友可以參考下2022-03-03
Python抓取數(shù)據(jù)到可視化全流程的實現(xiàn)過程
這篇文章主要介紹了Python抓取數(shù)據(jù)到可視化全流程的實現(xiàn)過程,2022-01-01

