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

合肥企业网站建设公司哪家好西安区seo搜索排名优化

合肥企业网站建设公司哪家好,西安区seo搜索排名优化,免费域名空间国外,网络工程属于计算机类吗从零开始学Python(3)——函数 文章目录 从零开始学Python(3)——函数前言定义、调用、返回值参数传递和深浅拷贝问题可变参数匿名函数(Lambda函数)闭包、装饰器模块、包、库结语 前言 开始学python的第三天…

从零开始学Python(3)——函数

文章目录

  • 从零开始学Python(3)——函数
    • 前言
    • 定义、调用、返回值
    • 参数传递和深浅拷贝问题
    • 可变参数
    • 匿名函数(Lambda函数)
    • 闭包、装饰器
    • 模块、包、库
    • 结语

前言

开始学python的第三天,今天深入学习一下python的函数。内容包括定义调用、参数传递、返回值、嵌套调用和递归、变量的有效范围、匿名函数(lambda函数)、闭包和装饰器

参考书:《Python编程:从入门到实践》

参考博客:Python手把手教程_安然无虞的博客-CSDN博客

其他参考内容:Python 简介 - 菜鸟教程


定义、调用、返回值

定义函数的关键字:def,是define的简写,记得加:。

形参和实参问题

调用直接函数名即可

实参分为三种,位置实参、关键字实参、使用列表和字典传参

位置实参和c++类似,每个实参的位置必须和形参位置对应。(c++有类型名的限制而python没有,所以位置很重要)

关键字实参:在实参中将名称和值关联起来,如

def print_text(text,id):print("this text id is "+id)print("this text is "+text)print_text(id='1',text='hello')

由于已经指定了,不会混淆,所以位置无关紧要了

默认值

在函数定义的时指定默认值,调用的时候,如果缺省了有默认值的实参,则实参使用默认值

位置实参、关键字实参、默认值实参可以混合使用

返回值

return在def基础上缩进一级,同样不需要分号之类的符号。return 返回一个值给调用方(或者返回一个元组),不写返回值则返回None

关于None:有点类似null,表示空,不是0也不是空字符串,但是在条件判断里可以视为false

关于pass语句:占位符,什么都不做


参数传递和深浅拷贝问题

可以向函数传递列表或字典,这里涉及到了值传递和引用传递问题。对于python,所有的对象可以分为两大类。1.不可变对象(可哈希):int、float、bool、str、tuple 2.可变对象(不可哈希):list、dict、set。对于不可变对象,传值传的是一个新对象,各种修改操作都不影响原有对象,类似值传递;对于可变对象,函数传参传递的是一个引用(地址),大部分的操作都会影响原有的对象,只有赋值操作不影响原有对象。

如果想在函数中修改某个可变对象,但不希望函数外的可变对象改变,可以使用[:]切片传递或者.copy()浅拷贝,这两种方法可以隔离不可变对象和单层的可变对象修改,但是不能隔离嵌套可变对象(字典套字典)的内部修改(函数中对字典内字典的修改会影响外部的嵌套字典)。为了隔离嵌套可变对象,使用深拷贝.deepcopy()方法。

python参数传递的本质是引用传递,只是有一些类是常量

题外话:学了c++,了解了内存后,再学python可谓降维打击


可变参数

函数定义中使用*形参名(接收所有没有对应位置的位置实参)或者**形参名(接受所有没有对应名称的关键字实参)。这种方法类似c语言参数列表里的…,c语言使用预先定义好的宏处理可变参数列表。

注意*和**放到参数列表的最后

*接受多个位置参数,把它们组织成一个元组tuple,元组名就是形参名

**接受多个关键字参数,把它们组织成一个字典dict,字典名就是形参名


匿名函数(Lambda函数)

一种简洁的函数定义方式,用来创建一次性的简单函数,使用关键字lambda

lambda 参数:表达式

返回值就是表达式的结果


闭包、装饰器

闭包

是指一个函数(内部函数)可以访问其 词法作用域(lexical scope) 中的变量,即使外部函数已经执行完毕。

python允许函数的嵌套定义,即在一个函数定义中嵌入另一个函数定义,内部的函数可以使用外部函数中的变量,由此形成闭包(说实话有点难理解,因为我的思维还是c++式的,c++还没研究过闭包)

外部函数决定了闭包的灵活性。

闭包创建了一个相对独立的空间,它让内部函数可以使用外部函数中的局部变量而不是全局变量,这就保证了闭包的封闭和稳定,闭包让函数更加的模块化、可维护、可重用、易于拓展和修改

装饰器

装饰器就是闭包的一种应用,它可以在不改变函数源代码的情况下给函数添加一些临时的新功能,它接受一个函数作为参数,返回值是修饰后的函数

大概看一眼就跳过。


模块、包、库

模块

类似c++一个个源文件,让我们可以复用函数

使用import导入模块,使用模块名.函数名() 使用模块里的方法

使用form 模块 import 函数名单独导入某个方法,此时使用函数不需要模块名.函数名这种方法了

使用as给导入的函数起别名,这样可以避免函数名重复(题外话:有点sql的味道)

*是通配符,这点和sql一致

包就是组织管理起来的一批模块,用__init__.py管理

如果某些某块的函数实现了通用的功能,经常被其他模块调用,或者开发这个模块就是为了给其他模块使用的,就可以把这个这些模块成为库

库是一种抽象的概念

标准库

python语言包括了一批标准库,标准库分为两类,内置类型无需import导入即可使用,剩下的标准库就需要导入才可使用


结语

简单过了一下python中的函数,后续过一下python的oop部分,就可以开始我们的爬虫书写之旅了。

http://www.dtcms.com/wzjs/457103.html

相关文章:

  • 网站顶部布局itmc平台seo优化关键词个数
  • 广州网站开发招聘郑州网络营销学校
  • 网站设计标注图怎么做应用商店aso优化
  • 建设商城网站视频教学如何推广自己的网站
  • c2c平台的具体购物流程广州网站优化公司排名
  • 建设银行网站买手机济南seo排名搜索
  • 穹拓做网站天猫店铺申请条件及费用
  • 微信公众号怎样做淘客网站seo推广效果
  • 桂林两江四湖游船路线seo自然搜索优化排名
  • dw做框架网站郑州seo培训班
  • 专门做礼物的网站宁波江北区网站推广联系方式
  • 网站制作计划360网站安全检测
  • 缙云做网站申请百度账号注册
  • 如何建设网站平台百家号关键词seo优化
  • 梅林多丽工业区做网站铁力seo
  • 威海网站建设价格网站seo公司
  • 使用redis做视频网站缓存郑州外贸网站推广
  • 广州商城网站建设报价搜索引擎优化的常用方法
  • 工程建设标准化期刊网站百度模拟搜索点击软件
  • 义乌网站制作是什么怎么查找关键词排名
  • 乌鲁木齐做网站推广企业网站页面设计
  • 穆棱市城乡建设局网站购物网站哪个最好
  • 个人做网站开发指标全国疫情实时动态
  • 建设行业信息和技术应用服务网站百度2018旧版下载
  • 单页面优化的重点seo发帖工具
  • 深圳网站建设qwyx100湖南长沙seo教育
  • 汕头网站建设浩森宇特关键词优化推广策略
  • 蒙牛奶特网站怎么做活动推广方式都有哪些
  • 东莞网站建设0769dt在线网络培训平台
  • 如何 html5 网站模板总推荐榜总点击榜总排行榜