日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:如何在Python中定義變量

我們首先看一下變量的分類,通常情況下,我們所說到的定義一個(gè)變量,如果沒有特殊說明,那么就是定義一個(gè)全局變量。

全局變量

在模塊內(nèi)、在所有函數(shù)外面、在class外面,這就是全局變量

局部變量

在函數(shù)內(nèi)、在class的方法內(nèi)(未加self修飾),這就是局部變量

靜態(tài)變量

在class內(nèi)的,但不在class的方法內(nèi)的,這就是靜態(tài)變量

實(shí)例變量

在class的方法內(nèi)的,用self修飾的變量,這就是實(shí)例變量

全局變量

全局變量供全局共享,全局類和函數(shù)均可訪問,達(dá)到同步作用。同時(shí)還可以被外部文件訪問。

使用

全局變量使用的時(shí)候,需要用global顯示聲明。

一般情況下,如果函數(shù)直接調(diào)用全局變量,不做更新的話,一般沒有問題,但如果有重新賦值,又沒有在函數(shù)內(nèi)部使用 global聲明的話, 就相當(dāng)于在內(nèi)部創(chuàng)建了一個(gè)同名的局部變量,局部變量優(yōu)先級要高于全局變量。

# coding:utf-8
_all = 'HelloWorld'    # 全局變量
_all_list = []    # 全局變量

def printall():
    global _all    # 這里需要用global顯示聲明
    print _all    # HelloWorld

局部變量

# coding:utf-8
def show():
    city = 'Beijing'    # 局部變量
    print city

靜態(tài)變量

可以稱為是類變量,通過類名可以直接訪問,也可以通過實(shí)例名直接訪問,此變量在類中全局共享,實(shí)例之間也是全局共享??梢钥聪旅鎸?shí)例

# coding:utf-8
class foo:
    all = 0   
    def add(self):
        foo.q += 1

instance01 = foo()   # 實(shí)例化對象1
instance02= foo()    # 實(shí)例化對象2
print instance01.all    # 執(zhí)行結(jié)果為:0
print instance02.all    # 執(zhí)行結(jié)果為:0
print foo.all    # 執(zhí)行結(jié)果為:0

instance01.add()
print instance01.all    # 執(zhí)行結(jié)果為:1
print instance02.all    # 執(zhí)行結(jié)果為:1
print foo.all    # 執(zhí)行結(jié)果為:1

instance02.add()
print instance01.all    # 執(zhí)行結(jié)果為:2
print instance02.all    # 執(zhí)行結(jié)果為:2
print foo.all    # 執(zhí)行結(jié)果為:2

實(shí)例變量

對于模塊來說,有了自己的全局變量,可以供自己內(nèi)部的類,函數(shù)使用,同步;對于函數(shù)或者類方法來說,有了自己的局部變量,供自己內(nèi)部使用;對于類,有了靜態(tài)變量,可以供內(nèi)部和有繼承關(guān)系的父子之際使用,同步;但實(shí)例之間各自的私有變量(局部變量)就要靠實(shí)例變量了,實(shí)現(xiàn)了動態(tài)綁定,多態(tài)特性。

用self來修飾

# coding:utf-8
class foo:
    all = 0
    def __init__(self, name):
        self.name = name
    def add(self):
        foo.q += 1

instance01 = foo('hello')
instance02 = foo('hi')
print instance01.name    # hello
print instance02.name    # hi
print foo.name     # AttributeError:class foo has no attribute 'name'

總結(jié)

在整個(gè)代碼組織的過程中,一般會有這樣兩種基本需求,私有 和 公有。

私有

不與其他共享,自己獨(dú)享,如函數(shù)和方法的局部變量,實(shí)例變量

公有

需要在一定范圍內(nèi)共享,達(dá)到同步目的,如模塊內(nèi)的代碼共享的全局變量,類與子類之間共享的靜態(tài)變量。

更多學(xué)習(xí)內(nèi)容,請點(diǎn)擊Python學(xué)習(xí)網(wǎng)。


新聞標(biāo)題:創(chuàng)新互聯(lián)Python教程:如何在Python中定義變量
標(biāo)題URL:http://m.5511xx.com/article/cdosdos.html