码迷,mamicode.com
首页 > 其他好文 > 详细

Day10 网络编程(续)

时间:2016-08-20 10:03:56      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

作用域

Python的作用域是函数,没有块级作用域

if 1 == 1:
name = ‘wang‘

print(name)
#wang
 
for i in range(10):
name = i

print(name)
#9
 
def func():
name = ‘wang‘

func()
print(name)
#NameError: name ‘name‘ is not defined
 
name = ‘wang‘

def f1():
name = ‘snow‘
print(name)

f1()
#snow
作用域链
name = ‘wang‘
def f1():
name = ‘a‘
def f2():
name = ‘b‘
print(name)
f2()
f1()
#b
 
name = ‘wang‘
def f1():
print(name)

def f2():
name = ‘snow‘
f1()

f2()
#wang
在函数未执行之前,作用域已经确定
name = ‘wang‘
def f1():
print(name)

def f2():
name = ‘snow‘
return f1

ret = f2()
ret()
#wang
 
li = [x+100 for x in range(10) if x > 5]
print(li)
#[106, 107, 108, 109]
 
def f1():
return 1
#相当于
li = [lambda :1]

面试题

li = [lambda :x for x in range(10)]
#li为列表
#li列表中的元素:【函数,函数,函数...】
#函数在没有执行前,内部代码不执行
#列表的第一个元素li[0]是函数
#函数()执行
#li[0]()返回值为9
ret = li[0]()
print(ret)
#9
 
li = []

for i in range(10):
def f1():
return i

li.append(f1)


ret1 = li[0]()
ret2 = li[1]()
ret3 = li[2]()
ret4 = li[3]()
ret5 = li[4]()
ret6 = li[5]()
ret7 = li[6]()
print(ret1)
print(ret2)
print(ret3)
print(ret4)
print(ret5)
print(ret6)
print(ret7)
#9
#9
#9
#9
#9
#9
#9
只要执行了,就能拿到值
li = []

for i in range(10):
def f1(x = i):
return x
li.append(f1)

print(li[0]())
print(li[1]())
print(li[2]())
print(li[3]())
#0
#1
#2
#3

Python3.x中类默认继承object,Python2.7中类不默认继承object;Python2.7中不继承object的类叫经典类,继承的时候一条道走到黑,继承object的类叫新式类,继承的时候与Python3一致。

 


 

Day10 网络编程(续)

标签:

原文地址:http://www.cnblogs.com/icsnow/p/5789618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!