首页 技术 正文
技术 2022年11月9日
0 收藏 637 点赞 3,178 浏览 2603 个字

 def fn():    print(“我叫fn”)fn()print(fn)## <function fn at 0x0000000001D12E18>fn()gn = fn #函数名可以进行赋值print(gn)# <function fn at 0x0000000001D12E18>gn() fn = 666print(fn) #666 def func1()    print(“朱祁镇”)def func2()    print(“徐杰”)def func3():    print(“王阳明”)def func4():    print(“魏忠贤”) lst = [func1,func2,func3,func4]#函数+() 就是调用print(lst) lst[0]()for el in lst:  #el是列表中的每一项    el() #拿到的是函数.  执行函数def wrapper():    def inner():        print(“哈哈哈”)    return inner#函数名可以像返回值一样返回ret = wrapper()  #接收的是inner函数ret() #调用函数inner  在函数外面访问了函数内部的函数函数可以作为参数进行传递def func1():    print(“谢晋”) def func2():    print(‘杨士奇’) def func3():    print(‘徐渭’) def func4():    print(“柳如是”)#代理.装饰器的雏形de proxy(a)    print(“我是代理”)    a()    print(“代理执行完毕”)proxy(func1)proxy(func2)  #将函数当做参数进行传参  闭包 闭包的优点1.可以保持变量不被其他人侵害2.保持一个常量常驻与内存def wrapper():    a = “哈哈” #如果把a放到全局作用域是不安全的一种写法,因为好多内容用着同一个变量,则把它放到一个局部作用域中    name = “周杰伦”    def inner        print(name)#在内层函数中使用了外层的函数的局部变量         print(a)    return inner  #返回函数名 ret = wrapper()  #ret是inner函数ret()  #调用函数 def wrapper():    name = “周杰伦”  #局部变量常驻与内存    def inner():        print(name) #在内层函数中使用外层函数的局部变量    return inner  #返回函数名        #inner()ret = wrapper()  #ret是一个内层函数ret()  #ret是inner,执行的时机是不确定的,必须保证里边的name是存在的 #超级简单的爬虫from urllib.request import urlopen  #导入一个模块 def func():        #获取到网页中的内容,当网速很慢的时候.反复的打开这个网站 很慢    content = urloppen(“https://www.dytt8.net/”).read()    def inner():        return  content.decode(“gbk”)  #网页内容    return innerprint(“开始网络请求”)ret = func()  #网络请求已经关闭print(“网络请求完毕”)print(“第一次”,ret())print(“第二次”,ret()) #加载到内存  不用每次都进行网络请求 直接进行内存的调用  但是变量多的话  内存可能撑不下   def wrapper():    name = “alex”    def inner():        print(“name”)    print(inner.__closure__)  #查看是否闭包.有内容就是闭包,没有内容就不是闭包    inner()wrappe() 迭代  s = “今天下午考试,你们还要睡觉吗 “for c in s: #字符串是一个可迭代对象    print (c) for i in 123: # ‘int’ object is not iterable整型是不可以迭代的    print(i)dir(对象)  #可以帮我们查看xxx数据能够执行的操作print(dir(str))  #__iter__  字符串 列表 字典 元组 集合 是可以迭代的  int 和 bool 是不可以迭代的共性:所有带有__iter__的东西可以进行for循环,带有__iter__的东西就是可以迭代的lst = [“贾樟柯”, “李安”, “杨德昌”, “王家卫”]it = lst.__iter__() #拿到的是迭代器 print(it.__next__()) #下一个print(it.__next__()) #下一个print(it.__next__()) #下一个print(it.__next__()) #下一个print(it.__next__()) #下一个 会报错  stopinteration  停止迭代##想回去只能重新获得迭代器1.只能项下执行,不能反复2.结束的时候会扔给我们一个错误  stopiteration3.整合所有的数据类型进行遍历 (int,bool除外)用while循环来模拟for循环it = list.__iter__()while 1:        try:            el = it.__next__:  #拿数据            print(el)        except stopiteration:  #出现错误说明数据拿完了             break  #退出循环 官方通过代码判断是否是迭代器借助于两个模块  Iteration 迭代器,iterable 可迭代的from collections import iterable,iteratorlst = [1,2,3]print(lst.__next__())print(isinstance(lst, Iterable)) # xxx是否是xxx类型的. Trueprint(isinstance(lst, Iterator)) # False 迭代器一定是可迭代的,可迭代的东西不一定是迭代器isinstens(参数,iterable)  判断xxx是不是某某类型                

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,737
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,489
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,128
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,290