Pyhton入门 笔记 第四天 Python的高级语法…
2018-07-17 04:06:07来源:博客园 阅读 ()
一,枚举
from enum import Enum #引入枚举模块
class VIP(Enum): #python中枚举既是类,而且要继承父类Enum
YELLOW=1
GREEN=2
BLACK=3
RED=4
print(VIP.YELLOW) #得到的是枚举
print(VIP.YELLOW.value)
print(VIP.YELLOW.name) #得到的是str
结果:VIP.YELLOW #枚举类型 1 #枚举值 YELLOW#枚举的名字
二,枚举的重命名
from enum import Enum
class VIP(Enum):
YELLOW=1
YELLOW_ALIAS=2 #在枚举中,如果两个数值是相同的话,可以称为另一个的别名。
BLACK=3
RED=4
for v in VIP:
print(v) #此时当打印的时候,是不会打印出别名来的。
如果想要打印出别名的话
for v in VIP.__member__.items():
print(v) #此时可打印出枚举的所有相关项
如果上面的输出太多,也可以
for v in VIP.__member__:
print(v)
三,枚举类型转化
from enum import Enum
class VIP(Enum):
YELLOW=1
GREEN=2
BLACK=3
RED=4
a=1 #当我们得到一个值时怎么能得枚举类型。
print(VIP(a)) #直接把值放到枚举类中
结果为:VIP.YELLOW
四 枚举的继承
当在引入时不至有
from enum import Enum
还可以引入
from enum import IntEnum #当枚举类继承此(IntEnum)时,枚举类的值只能是数字类型
class VIP(IntEnum):
YELLOW=1
GREEN=2
BLACK=3
RED=4
注,当值有字符类型时会报错,但如果继承(Enum)时,则都可以.
五,限定枚举值不能相同
from enum import IntEnum,unique
@unique #装饰器 #限定枚举值不可以相同,会报错
class VIP(IntEnum):
YELLOW=1
GREEN=2
BLACK=3
RED=4
六 #闭包=函数+环境变量
def curve_pre():
a=25 #环境变量
def curve(x)
return a*x*x
return curve #函数curve_pre的返回值,为curve函数而不是curve函数的值
a=10
f=curve_pre() #调用函数cruve()之前应先调用函数curve_pre(),因为函数curve_pre的返回值为函数curve(),所以此时f=curve(x)
f(2) #此时等于curve(2) 但此时函数curve()中的a=25,而不是10
print(f(2))
print(f.__closure__) #环境变量被放置的地方
print(f.__closure__[0.]cell_contents) #打印出环境变量的值
七,问题解决 需求,走路,计算步数
origin=0 #初始化原点
def go(step) #step步数
global origin #定义origin为全局变量
new_pos=origin+step
origin=new_pos #此处如果对origin重新赋值时没有定义为全局变量,则会被认为是局部变量,而局部变量不是向上找origin=0,所以会被认为没有被定义
return new_pos
print(go(2))
print(go(6))
print(go(10))
八,闭包解决问题同上
origin=0
def factory(pos) #步数
def go(step) #行走步数
nonlocal pos #指定pos为非局部变量
new_pos=pos+step
pos=new_pos
return new_pos
return go #闭包特征返回函数go() 环境变量(记录上次的环境特殊)pos
tourist=factory(origin)
print(tourist(2))
print(tourist(5))
print(tourist(8))
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 小白如何入门 Python 爬虫? 2019-08-13
- Python之装饰器笔记 2019-08-13
- Python之对象持久化笔记 2019-08-13
- Python单元测试笔记 2019-08-13
- 编程小白的第一本python入门书(高清版)PDF下载 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash