python的高级语法_python高级语法

python的枚举用法

1.枚举类的值不要重复

2.枚举类不要实例化

# -*-coding:utf-8-*-

# Author:Lai

from enum import Enum,unique

@unique

class VIP(Enum):

BLACK = 1

YELLOW = 2

BLUE = 3

if __name__ == "__main__":

#枚举类型

print(VIP.BLACK)

#枚举类型的值int

print(VIP.BLACK.value)

#枚举类型的名称str

print(VIP.BLACK.name)

#通过类型的值int转枚举类型

print(VIP(1))

#循环枚举类型

for v in VIP:

print(v)

python的闭包

def test1():

a = 10

def inner():

print(a)

return inner

def test2():

a = 10

def inner():

# a是一个局部变量

a = 5

print(a)

return inner

if __name__ == "__main__":

f1 = test1()

print(f1.__closure__[0].cell_contents) #10

f2 = test2()

print(f2.__closure__) #None

python全局变量的赋值 与 闭包变量的赋值

1.全局变量的赋值

# -*-coding:utf-8-*-

# Author:Lai

orgin = 0

def outer(step:int):

# 特别注意

global orgin

new_orgin = orgin + step

orgin = new_orgin

if __name__ == "__main__":

outer(3)

print(orgin)

outer(5)

print(orgin)

outer(7)

print(orgin)

2.闭包变量的赋值

# -*-coding:utf-8-*-

# Author:Lai

def outer():

orgin = 0

def inner(step):

# 特别注意

nonlocal orgin

new_orgin = orgin + step

orgin = new_orgin

print(orgin)

return inner

if __name__ == "__main__":

f = outer()

print(f.__closure__[0].cell_contents)

f(3)

print(f.__closure__[0].cell_contents)

f(5)

print(f.__closure__[0].cell_contents)

f(7)

print(f.__closure__[0].cell_contents)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值