日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python编程基础:第二十四节 作用域Scope

發布時間:2025/4/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python编程基础:第二十四节 作用域Scope 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第二十四節 作用域Scope

  • 前言
  • 實踐

前言

在Python中每一個變量都有其自己的生命周期,我們一般將變量分為全局變量與局部變量,全局變量是指在整個代碼內部都可以訪問到的變量,局部變量是指只有在函數內部能夠訪問到的變量。

實踐

我們先創建一個函數用于展示用戶的名稱:

def Display_Name():name = "Tom"print(name) Display_Name() >>> Tom

我們可以發現這個函數沒有接受任何參數,但是可以打印用戶名稱,這是為什么呢?其實是因為在函數內部定義了一個局部變量name,當我們調用函數Display_Name()時,它可以獲取到其內部局部變量name的值并將其打印出來。那么我們是否可以在函數外部訪問該變量呢?

def Display_Name():name = "Tom"print(name) print(name) >>> NameError: name 'name' is not defined

發現程序報錯了,并指明name沒有定義,這是為什么呢?不難發現name的定義在函數Display_Name()內部,其生命周期也即在調用Display_Name()函數時有效,并且在Display_Name()函數執行完畢時,該變量就會被銷毀,所以在函數外部調用該變量時,其生命周期已經終結,所以并不會存在name這個變量。那我是否可以指定一個變量在程序的任何地方都可以訪問呢?其實是可以的,我們使用全局變量即可:

name = "Jon" def Display_Name():name = "Tom"print(name) Display_Name() print(name) >>> Tom >>> Jon

可以發現現在沒有報錯,那為什么調用Display_Name()函數顯示Tom,而在函數外部打印name變量顯示Jon呢,是因為Python在調用函數的時候,首先會檢驗是否存在函數內的局部變量,若存在則調用該局部變量,若不存在才會去看是否存在全局變量。所以在調用函數時,局部變量的優先級高于全局變量。如果我們注釋掉函數內部的name定義便會出現下述情況:

name = "Jon" def Display_Name():# name = "Tom"print(name) Display_Name() >>> Jon

此時在調用函數時,他發現不存在名為name的局部變量,所以去搜尋是否存在名為name的全局變量,如果存在的話就用全局變量的值即可,如果不存在則報錯。
以上便是作用域的全部內容,感謝大家的收藏、點贊、評論。我們下一節將介紹args參數(*args),敬請期待~

總結

以上是生活随笔為你收集整理的Python编程基础:第二十四节 作用域Scope的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。