python怎麼定義變數
A. python 怎麼定義全局變數
你直接定義的localvar是個全局變數;而test()這個函數中會定義(或重綁定)全局變數localvar為6。
可以這樣理解:函數是一個盒子,所有函數體里定義的變數都只能在盒子里存在。但是global關鍵字讓函數可以定義能拿到盒子外的變數(所以,如果變數名字相同,後來的賦值操作就會覆蓋之前的值,這和你在盒子外面的行為是一樣的)。
>>>
def
box():
localvar
=
6
>>>
def
box_with_a_global_var():
global
globalvar
globalvar
=
6
>>>
localvar
=
5
>>>
box()
>>>
localvar
5
>>>
box_with_a_global_var()
>>>
globalvar
=
5
>>>
globalvar
5
B. 如何在Python中定義靜態變數
Python使用函數默認值實現函數靜態變數的方法,具體方法如下:
一、Python函數默認值
Python函數默認值的使用可以在函數調用時寫代碼提供方便,很多時候我們只要使用默認值就可以了。 所以函數默認值在python中用到的很多,尤其是在類中間,類的初始化函數中一幫都會用到默認值。 使用類時能夠方便的創建類,而不需要傳遞一堆參數。
只要在函數參數名後面加上 」=defalut_value」,函數默認值就定義好了。有一個地方需要注意的是,有默認值的參數必須在函數參數列表的最後,不允許將沒有默認值的參數放在有默認值的參數後,因為如果你那樣定義的話,解釋器將不知道如何去傳遞參數。
先來看一段示例代碼:
def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):
while True:
ok = raw_input(prompt)
if ok in ('y', 'ye', 'yes'): return True
if ok in ('n', 'no', 'nop', 'nope'): return False
retries = retries - 1
if retries < 0: raise IOError, 'refusenik user'
print complaint
你調用上面的函數時,可以修改重試次數和輸出的提示語言,如果你比較懶得話,那麼什麼都不用改。
二、python使用函數默認值來實現函數靜態變數的功能
Python中是不支持靜態變數的,但是我們可以通過函數的默認值來實現靜態變數的功能。
當函數的默認值是內容是可變的類時,類的內容可變,而類的名字沒變。(相當於開辟的內存區域沒有變,而其中內容可以變化)。
這是因為python中函數的默認值只會被執行一次,(和靜態變數一樣,靜態變數初始化也是被執行一次。)這就是他們的共同點。
再來看下面的程序片段:
def f(a, L=[]):
L.append(a)
return L
print f(1)
print f(2)
print f(3)
print f(4,['x'])
print f(5)
其輸出結果是:
[1]
[1, 2]
[1, 2, 3]
['x', 4]
[1, 2, 3, 5]
前面的好理解,為什麼最後 「print f(5)」的輸出是 「[1, 2, 3, 5]」呢?
這是因為 「print f(4,['x'])」時,默認變數並沒有被改變,因為默認變數的初始化只是被執行了一次(第一次使用默認值調用),初始化執行開辟的內存區(我們可以稱之為默認變數)沒有被改變,所以最後的輸出結果是「[1, 2, 3, 5]」。
C. Python怎樣定義變數
python定義變數很簡單
a=1
D. python怎樣命名變數的
模塊名:
小寫字母,單詞之間用_分割
ad_stats.py
包名:
和模塊名一樣
類名:
單詞首字母大寫
AdStats
ConfigUtil
全局變數名(類變數,在java中相當於static變數):
大寫字母,單詞之間用_分割
NUMBER
COLOR_WRITE
普通變數:
小寫字母,單詞之間用_分割
this_is_a_var
實例變數:
以_開頭,其他和普通變數一樣
_price
_instance_var
私有實例變數(外部訪問會報錯):
以__開頭(2個下劃線),其他和普通變數一樣
__private_var
專有變數:
__開頭,__結尾,一般為python的自有變數,不要以這種方式命名
__doc__
__class__
普通函數:
和普通變數一樣:
get_name()
count_number()
ad_stat()
私有函數(外部訪問會報錯):
以__開頭(2個下劃線),其他和普通函數一樣
__get_name()
————————————————————————————————————————————————————————————————————
文件名
全小寫,可使用下劃線
包
應該是簡短的、小寫的名字。如果下劃線可以改善可讀性可以加入。如mypackage。
模塊
與包的規范同。如mymole。
類
總是使用首字母大寫單詞串。如MyClass。內部類可以使用額外的前導下劃線。
函數&方法
函數名應該為小寫,可以用下劃線風格單詞以增加可讀性。如:myfunction,my_example_function。
*注意*:混合大小寫僅被允許用於這種風格已經占據優勢的時候,以便保持向後兼容。
函數和方法的參數
總使用「self」作為實例方法的第一個參數。總使用「cls」作為類方法的第一個參數。
如果一個函數的參數名稱和保留的關鍵字沖突,通常使用一個後綴下劃線好於使用縮寫或奇怪的拼寫。
全局變數
對於from M import *導入語句,如果想阻止導入模塊內的全局變數可以使用舊有的規范,在全局變數上加一個前導的下劃線。
*注意*:應避免使用全局變數
變數
變數名全部小寫,由下劃線連接各個單詞。如color = WHITE,this_is_a_variable = 1
*注意*:
1.不論是類成員變數還是全局變數,均不使用 m 或 g 前綴。
2.私有類成員使用單一下劃線前綴標識,多定義公開成員,少定義私有成員。
3.變數名不應帶有類型信息,因為Python是動態類型語言。如 iValue、names_list、dict_obj 等都是不好的命名。
常量
常量名所有字母大寫,由下劃線連接各個單詞如MAX_OVERFLOW,TOTAL。
異常
以「Error」作為後綴。
縮寫
命名應當盡量使用全拼寫的單詞,縮寫的情況有如下兩種:
1.常用的縮寫,如XML、ID等,在命名時也應只大寫首字母,如XmlParser。
2.命名中含有長單詞,對某個單詞進行縮寫。這時應使用約定成俗的縮寫方式。
例如:
function 縮寫為 fn
text 縮寫為 txt
object 縮寫為 obj
count 縮寫為 cnt
number 縮寫為 num,等。
前導後綴下劃線
一個前導下劃線:表示非公有。
一個後綴下劃線:避免關鍵字沖突。
兩個前導下劃線:當命名一個類屬性引起名稱沖突時使用。
兩個前導和後綴下劃線:「魔」(有特殊用途)對象或者屬性,例如__init__或者__file__。絕對不要創造這樣的名字,而只是使用它們。
*注意*:關於下劃線的使用存在一些爭議。
Python 用下劃線作為變數前綴和後綴指定特殊變數。
_xxx 不能用'from mole import *'導入
__xxx__ 系統定義名字
__xxx 類中的私有變數名
核心風格:避免用下劃線作為變數名的開始。
因為下劃線對解釋器有特殊的意義,而且是內建標識符所使用的符號,我們建議程序員避免用下劃線作為變數名的開始。一般來講,變數名_xxx被看作是「私有的」,在模塊或類外不可以使用。當變數是私有的時候,用_xxx 來表示變數是很好的習慣。因為變數名__xxx__對Python 來說刑厥夂澹雜諂脹ǖ謀淞坑Φ北苊庹庵置綹瘛?br>
"單下劃線" 開始的成員變數叫做保護變數,意思是只有類對象和子類對象自己能訪問到這些變數;
"雙下劃線" 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。
以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的介面進行訪問,不能用「from xxx import *」而導入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如 __init__()代表類的構造函數。
特定命名方式
主要是指 __xxx__ 形式的系統保留字命名法。項目中也可以使用這種命名,它的意義在於這種形式的變數是只讀的,這種形式的類成員函數盡量不要重載。如
class Base(object):
def __init__(self, id, parent = None):
self.__id__ = id
self.__parent__ = parent
def __message__(self, msgid):
# …略
其中 __id__、__parent__ 和 __message__ 都採用了系統保留字命名法。
E. python中如何定義變數
Python 中的變數賦值不需要類型聲明。這一點不想其他java,C,C++語言。
counter = 100 # 賦值整型變數
miles = 1000.0 # 浮點型
name = "John" # 字元串
print counter
print miles
print name
************************
執行以上程序會輸出如下結果:
100
1000.0
John
F. python 如何定義全局變數
python定義全局變數的方法:
python需要用到關鍵字「global 變數名」的方式來定義全局變數。
例如:定義全局變數student,「global student」就代表定義了一個全局變數student
示例如下:
更多Python知識,請關註:Python自學網!!
G. python怎麼定義個一個變數
這個做不到。
1樓的做法不能達到目的。定義普通整數時,佔用的內存是4位元組。
如果是為了讀寫二進制數據,那麼應該用struct庫,這個庫提供了一個二進制數據流和python變數相互轉換的函數,非常靈活。
H. python怎麼定義變數
示例代碼:
#定義布爾值類型參數a,b,值分別為True,False
a=True
b=False
print a,b
print type(a),type(b)
I. python怎麼定義一個變數
這個做不到。1樓的做法不能達到目的。定義普通整數時,佔用的內存是4位元組。如果是為了讀寫二進制數據
J. python中變數定義的問題
要知道一個對象與變數名的關系。在python中變數名與對象是不同的東西。一般來說,通過賦值語句會生成一個對象,但這個對象一般不能直接使用,需要通過一個引用來使用它,即給它一個名字。也就是等號左邊是一個變數名,右邊是生成對象的代碼,因此在執行這條賦值語句後就存在了兩個東西,一個是名字,一個是對象。在Python中把名字與變數關聯起來叫綁定。因此在後面你如果繼續對同一個變數名賦值的話,其實是實現了對變數名與新對象的重新綁定,在Python中這是允許的,原來綁定的對象如果無人再使用就自動回收,否則就將引用計數減一。而這個對象是無法改變類型了。因此你上面的a是變數名,後面才是對象的定義。不知道你是否理解。