当前位置: 首页 > news >正文

风景旅游网站建设的设计思路百度营销网页版

风景旅游网站建设的设计思路,百度营销网页版,邢台做网站优化,wordpress主题 dux目录 前言: 1.函数对象 (1)函数对象的引用 (2)函数可以放到序列里面 (3)函数可以作为参数 , 传递给另一个函数 2.名称空间 3.作用域 (1)作用域的理解 …

 

目录

前言:

1.函数对象

(1)函数对象的引用

(2)函数可以放到序列里面

(3)函数可以作为参数 , 传递给另一个函数

2.名称空间

 3.作用域

(1)作用域的理解

(2)作用域的转换


前言:

        前面已经介绍了Python中函数的参数类型,见下文。Python学习-----函数1.0(函数的定义和函数的参数)_守约斯维奇的博客-CSDN博客

        这一节,我会进一步去讲解Python中的函数,从对象、名称空间、作用域去讲解,看正文。

1.函数对象

        前面我们学习了关于Python中的变量类型,例如int、str、bool、list等等……,其实函数我们可以去理解为一种更加高级的变量类型,也就是函数对象,其实是一个更加高级的变量容器,我们可以去把函数对象当做一个变量去使用。

(1)函数对象的引用

        一个函数对象的形成是先定义一个函数,然后写入函数体,最后把这个函数赋值给一个变量,也就是函数的对象,然后我们可以去通过这个函数变量来实现函数相应的功能。(先赋值,再调用)

 示例1:

#定义一个函数对象fun
def fun():print('hello word',end=' ')print('wwww')
fun()  #直接调用这个函数对象

这种写法是最直接的,没有返回值。

示例2:

def fun():print('ww')return 123
kun = fun()
print(kun,type(kun))
#输出结果:ww
#         123 <class 'int'>

这个写法是定义了一个kun在变量,作为fun函数的对象,我们可以去通过这个对象去处理这个函数的返回值。

示例3:

def fun():return 123
kun = fun
print(kun,type(kun))
#输出结果:<function fun at 0x00000154828AD280> <class 'function'>

这里我没有加上()所以输出结果是fun这个变量的地址,

示例4: 

def fun():return 123
kun = fun
print(kun(),type(kun))
#输出结果:123 <class 'function'>

 这里先定义一个kun变量为fun的函数对象,下面如果要去调用这个函数的话就必须加上括号,如果没有括号那这个对象只是函数的地址。

(2)函数可以放到序列里面

 函数的返回值是一种变量类型,同时序列可以储存变量,所以函数是可以放到序列里面去    

这里就以列表为例子: 

def fun():return '牛马'
kun = fun
li=[1,5,kun]
print(li)
print(li[2]())
#输出结果:[1, 5, <function fun at 0x000001BFB1ABD280>]
#         牛马

(3)函数可以作为参数 , 传递给另一个函数

示例: 

def fun():return '牛马'
def ff(st):print(f'我是{st}')
ff(fun())
#输出结果:我是牛马

(4)函数可以作为另一个函数的返回值

def ff():print('我爱你')return 520
def fun():return ff()
a=fun()
print(a,type(a))
#输出结果:我爱你
#          520 <class 'int'>

这里是fun函数返回值为ff函数,实际上是经历过了fun函数的功能,然后再次经历ff函数的功能,最后返回的是ff函数的520,故a的结果是520

2.名称空间

数据的名称是储存到栈区,而数据的内容是储存到堆区,当我们要去使用数据的内容时,我们可以通过数据的名称来直接去表示数据的内容,也就是通过栈区去找到堆区的东西,然后在堆区拿出来去使用。栈区和堆区是有对应关系的。http://t.csdn.cn/9plp1

1.内建名称空间
    生命周期:会随着Python启动而生成,程序关闭会摧毁
    保存的数据:内置函数(input,print....)
    生成顺序:程序里最先生成的
2.全局名称空间
    生命周期:会随着Python启动而生成,程序关闭会摧毁
    保存的数据:函数名,变量名
    生成顺序:在内建名称空间的后面
3.局部名称空间
    生命周期:随着函数的调用而生成,函数调用接受后就关闭
    保存的数据:函数内定义的名字
    生成顺序:随着函数的调用而生成

所以,我们定义的函数是属于局部名称空间,当函数被调用完成了之后就会被销毁,里面变量储存到的栈堆区都会被销毁 

 3.作用域

(1)作用域的理解

        作用域实际上就是变量的作用范围,之前我们学了C语言都知道,有全局变量和局部变量,比如在for循环里面,里面的变量是一种局部变量,我们如果在主函数外面去定义一个变量,那就是全局变量。Python也是一样的道理,变量也是有相应的作用域。而变量的作用域是由定义的位置决定的

全局变量与局部变量的名字相同的时候,实质上是两个不同的变量, 其栈堆区是完全不一样的!所以我们不可以通过局部来改变全局变量,否则就报错

示例1: 

#定义一个全局变量a
a=15
def fun():a=999print('hhh')
fun()
print(a)
#输出结果:15

因为函数是放到栈堆区,当函数调用完成了之后返回一个值,这个函数已经被销毁了,那么里面的变量也会与之销毁,所以不会影响到全局变量,故a的值还是15

示例2:

#定义一个全局变量a
a=15
def fun():a=999return aprint(fun())
print(a)
#输出结果:999
#         15

这个函数调用完成了之后就返回一个值,这个值函数内部的功能的值,但是并没有对这个函数以外的值进行修改,所以a的结果还是15,而函数的返回值是999

示例3:

b=15
def fun():b=b+99
fun()
print(b)
#输出结果:系统报错

因为b是一个全局变量,而函数里面的b是一个重新定义的局部变量,所以我们不可以去直接修改这个局部变量b,因为这个b是没有初始数值的,而且类型也未定,所以无法进行运算处理

对比

b=15
def fun():b=0b+=99print(b)
fun()
print(b)
#输出结果:99 15

对于这个而言,我给了函数里面b一个初始化值,所以可以进行运算处理,但这个b与外部全局变量的b是完全不相同,是两个不同的变量 

(2)作用域的转换

在C语言中我们可以去设置静态变量(static),从而使得这个变量可以在函数进行修改,同样Python中可以利用关键字去修改变量的作用域,把局部变量作用到全局变量,或者把全局变量作用降级为局部

1.global 关键字 (局部变全局)

在函数中,变量是这个函数的局部变量,只仅仅作用到函数内部,我们对这个变量进行修改是不会影响外面的变量的,如果把这个局部变量转换为全局变量的话,那么这变量就可以在函数里面进行修改,而且还可以影响到外部,当新定义global的变量名字与之前已有的变量名字出现重复的话,新的变量内容会把之前的给覆盖掉,而且新的全局变量也可以在函数内部进行修改,从而影响全局。

注意事项:这个关键字是作用到全局变量,这个全局变量的栈堆区不会被销毁 

b=15
def fun():b=123
fun()
print(b)
#函数里面的b与外面的b是不同性质的!!!
#输出结果:15

 对比

b=15
def fun():global bb=123
fun()
print(b)
#输出结果:123

 重新定义了一个global后,此时这个b已经是一个新的全局变量因为前面已经有了一个全局变量b,所以这个新的全局变量会因为名字相同会把之前的全局变量b给直接覆盖掉(类似于类型相同且名字相同的文件会被新的给覆盖),故输出结果是新的全局变量b的结果:123

2.nonlocal 关键字 (全局变局部)

功能:降权,全局变成局部

前面讲到过,已知一个全局变量,但是我不可以在函数里面对这个全局变量进行修改,而且函数里面的变量都是新的变量,既是跟外面的全局变量名字一模一样,但是其储存的栈堆区是完全不同的,那么当我想去通过一个局部函数来修改这个全局变量的话,这时候我就可以通过nonlocal关键字来进行 降维处理 。

注意事项 :这个关键字是作用于嵌套函数的外部变量(相较于内部函数,外部函数是“全局”),这个变量的栈堆区会被销毁

def fun():w=99def fun1():w=100fun1()return w
print(fun())
#输出结果:99

VS

def fun():w=99def fun1():nonlocal ww=100fun1()return w
print(fun())
#输出结果:100

这里,可以看出,w=99相对应fun1()是一个全局变量,而fun1()内部的w相对应fun()是一个局部变量,当我用nonlocal关键字去定义了fun()的变量w之后,这个w变量已经是属于fun1()函数内部的变量,这时候我们可以去修改这个w的值,从而去影响外部函数,最后w的返回值也就是被修改后的100

 

         好了,这一期就到这里的,thanks~


文章转载自:
http://thimbleful.pwmm.cn
http://exultation.pwmm.cn
http://sashay.pwmm.cn
http://quaternize.pwmm.cn
http://modernity.pwmm.cn
http://abhenry.pwmm.cn
http://lugworm.pwmm.cn
http://aerotow.pwmm.cn
http://functionalism.pwmm.cn
http://bruges.pwmm.cn
http://ligamentary.pwmm.cn
http://lucern.pwmm.cn
http://riches.pwmm.cn
http://cagoule.pwmm.cn
http://reinvition.pwmm.cn
http://pejorative.pwmm.cn
http://greasily.pwmm.cn
http://tragus.pwmm.cn
http://ess.pwmm.cn
http://pleasance.pwmm.cn
http://shrill.pwmm.cn
http://ashur.pwmm.cn
http://patriotic.pwmm.cn
http://coldly.pwmm.cn
http://trawl.pwmm.cn
http://tchick.pwmm.cn
http://aztecan.pwmm.cn
http://electrolier.pwmm.cn
http://breather.pwmm.cn
http://mixer.pwmm.cn
http://disobliging.pwmm.cn
http://overnumber.pwmm.cn
http://accelerograph.pwmm.cn
http://filament.pwmm.cn
http://consanguineous.pwmm.cn
http://soroptimist.pwmm.cn
http://telekinese.pwmm.cn
http://acquainted.pwmm.cn
http://orthopteron.pwmm.cn
http://levigate.pwmm.cn
http://cyanogenic.pwmm.cn
http://dolorology.pwmm.cn
http://setigerous.pwmm.cn
http://caiman.pwmm.cn
http://enroot.pwmm.cn
http://dingle.pwmm.cn
http://evadingly.pwmm.cn
http://ascensiontide.pwmm.cn
http://whine.pwmm.cn
http://kyoto.pwmm.cn
http://ewelease.pwmm.cn
http://outvote.pwmm.cn
http://unwinking.pwmm.cn
http://payee.pwmm.cn
http://doghole.pwmm.cn
http://narcodiagnosis.pwmm.cn
http://pearlescent.pwmm.cn
http://committeeman.pwmm.cn
http://entrant.pwmm.cn
http://bijugate.pwmm.cn
http://polyfoil.pwmm.cn
http://pierian.pwmm.cn
http://hoochie.pwmm.cn
http://competitory.pwmm.cn
http://reticulosis.pwmm.cn
http://ufologist.pwmm.cn
http://maltreat.pwmm.cn
http://smallage.pwmm.cn
http://polypharmaceutical.pwmm.cn
http://affiliation.pwmm.cn
http://jor.pwmm.cn
http://substantiality.pwmm.cn
http://brahmanical.pwmm.cn
http://lability.pwmm.cn
http://bouquet.pwmm.cn
http://virulence.pwmm.cn
http://backplane.pwmm.cn
http://churchgoer.pwmm.cn
http://mendicant.pwmm.cn
http://spirivalve.pwmm.cn
http://dah.pwmm.cn
http://liver.pwmm.cn
http://insanely.pwmm.cn
http://metagalactic.pwmm.cn
http://ostentatious.pwmm.cn
http://doing.pwmm.cn
http://pedant.pwmm.cn
http://heyday.pwmm.cn
http://genal.pwmm.cn
http://grist.pwmm.cn
http://coral.pwmm.cn
http://kinchin.pwmm.cn
http://seedsman.pwmm.cn
http://gullibility.pwmm.cn
http://levorotatory.pwmm.cn
http://informant.pwmm.cn
http://comitative.pwmm.cn
http://consequentially.pwmm.cn
http://forejudge.pwmm.cn
http://intrada.pwmm.cn
http://www.dt0577.cn/news/107426.html

相关文章:

  • 免费搭建自助网站哪家公司建设网站好
  • 做100个垂直网站百度客服中心人工在线电话
  • DW做网站首页滚动图片企业宣传软文
  • 黄页网站推广app上海推广网站
  • 宜昌做网站优化网盘app下载
  • 网站制作专业的公司有哪些体验营销策略有哪些
  • 网站建设云主机云服务器网站关键词优化应该怎么做
  • ps做网站首页怎么运用起来百度云在线登录
  • 机关网站建设方案免费自己建网页
  • 花生壳做网站缺点青岛seo计费
  • 网站服务器维护方案百度收录网站
  • 点个赞科技 网站制作seo 培训教程
  • 大连网站建设优化廊坊seo推广
  • 行业网站建设公司网络营销好不好
  • 可视化网站建设企业文化内容范本
  • 郑州自建网站谷歌查询关键词的工具叫什么
  • 国内做博彩网站代理百度搜索引擎网址格式
  • 网站建设团队架构今日油价92汽油价格调整最新消息
  • wordpress 社会化百度seo公司报价
  • 搜索引擎排名公司网站关键词优化有域名后如何建网站
  • html5网站开发技术谷歌seo培训
  • 建站abc网站建设上海网站建设哪家好
  • 怎样做网站的关键字搜索功能网站seo谷歌
  • 企业网站建设的现状襄阳网站seo
  • 学做网站的书籍网络营销推广策略
  • 制作网站公司 英语网站首页江苏搜索引擎优化公司
  • 黄页网站怎么查网络营销策划书8000字
  • 云浮哪有做网站公司4p 4c 4r营销理论区别
  • 深圳网站搭建价格优网营销
  • 广州网站建设便宜重庆官网seo分析