Python 基礎 第七天

2021-10-01 23:51:58 字數 1608 閱讀 8950

# python3 命名空間和作用域

# 一般有三種命名空間:內建名稱 全域性名稱 區域性名稱

# 內建名稱:python 語言內建的名稱,比如函式名 abs、char 和異常名稱 baseexception、exception 等等

# 全域性名稱:模組中定義的名稱,記錄了模組的變數,包括函式、類、其它匯入的模組、模組級的變數和常量

# 區域性名稱:函式中定義的名稱,記錄了函式的變數,包括函式的引數和區域性定義的變數。(類中定義的也是)

# 命名空間的生命週期取決於物件的作用域,如果物件執行完成,則該命名空間的生命週期就結束

# 作用域就是乙個 python 程式可以直接訪問命名空間的正文區域

# python的作用域一共有4種,分別是:

# l(local):最內層,包含區域性變數,比如乙個函式/方法內部

# e(enclosing):包含了非區域性(non-local)也非全域性(non-global)的變數

# g(global):當前指令碼的最外層,比如當前模組的全域性變數

# b(built-in): 包含了內建的變數/關鍵字等

# python 中只有模組(module),類(class)以及函式(def、lambda)才會引入新的作用域

if true:

msg = '你真好,真是個大sd'

print(msg) # 這裡能夠輸出,說明在諸如if語句裡面定義的變數是可以直接在外部訪問

# 全域性變數和區域性變數

total = 0

def sum(a,b):

total = a+b

print("在裡面是區域性變數,total = ",total)

return total

sum(10,20)

print("在外面是全域性變數,total = ",total)

# global 和 nonlocal關鍵字

# 內部作用域修改外部作用域的變數 需要用到這兩個關鍵字

# 修改全域性變數:

num = 1

def fun1():

global num

print(num)

num = 123

print(num) # 外部引數num發生了變化

fun1()

print(num)

# 修改巢狀作用域

def outer():

num = 1

def inner():

nonlocal num

num = 100

print(num)

inner()

print(num)

outer()

# 特殊情況

a = 10

def test():

global a

a = a+1

print(a)

test()

print(a) # 外部的值的發生了改變

# 或者使用引數傳遞的方式:

a = 10

def test(a):

a = a+1

print(a)

test(a)

print(a) # 實際上外部的值沒有改變

python基礎自學 第七天

0.1變數的引用 1.1引用的概念 注意 如果變數已經被定義,當給乙個變數賦值的時候,本質上是修改了資料的引用 1.2函式的引數和返回值的傳遞 呼叫函式時,本質上傳遞的是實參儲存資料的引用 實參的記憶體位址 而不是實參儲存的資料 02.可變和不可變型別 不可變型別,記憶體中資料不允許被修改 數字型別...

python基礎作業第七天

恢復內容開始 1.判斷乙個數是否是水仙花數,水仙花數是乙個三位數,三位數的每一位的三次方的和還等於這個數.那這個數就是乙個水仙花數,例如 153 1 3 5 3 3 3 sum 0 num input 請輸入乙個數字 for c in range len num sum sum int num c ...

C 基礎第七天

1 ref引數 ref引數側重於將乙個變數以引數的形式帶到乙個方法中進行改變,改變完成後,再講改變後的值帶出來。在使用ref引數的時候需要注意 ref引數在方法外必須為其賦值。2 方法的過載 方法的過載指的是方法的名稱相同,但是引數不同。引數不同 1 如果引數的個數相同,那麼引數的型別就不能相同。2...