【python学习笔记】6.抽象

  • 创建函数: 使用def语句定义函数,不用声明参数类型,和返回值类型
def function_name(param1, param2):
'this is document'
pass # fuction body
return value # 可选
  • 函数体的第一行字符串被用作文档字符串
  • callable(func): 用来判读func是否可以调用
  • help函数用来返回相关函数的文档
  • 函数名可以作为变量赋值一个变量
  • 位置参数:函数调用期间,参数按照参数列表中的顺序依次赋值给参数变量 func(value1, value2)
  • 关键字参数:函数调用期间,使用参数名提供的参数func(param1=value1, param2=value2)
  • 默认参数:函数声明期间,参数列表中的某个参数被赋值 def func(param=value)
  • 收集参数:以星号(*)开头的参数名,用来接收不定量个参数,以元组的形式传递进入函数;可以传入序列,或者元组变量(变量前需要添加星号(*)
>>> def print_params(*params):
... print params
...
>>> print_params(1,2,3,4)
(1, 2, 3, 4)
>>>
>>> a=(1, 2, 3, 4)
>>> print_params(*a)
(1, 2, 3, 4)
>>> print_params(a)
((1, 2, 3, 4),)
  • 关键字参数收集:以两个星号号(**)开头的参数名,以字典形式传递进入函数;可以传入关键字参数,或者字典变量(变量前需要添加两个星号(**))
def print_params_3(**params):
print params
>>>
>>> print_params_3(a=1, b=2, c=3, d=4)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>>
>>> print_params_3(**a)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>>
  • 练习
>>> def interval(start, stop=None, step=1):
... 'imitates range for step > 0'
... if stop == None:
... start,stop=0,start
... result=[]
... i = start
... while i < stop:
... result.append(i)
... i+=step
... return result
...
>>>
>>> interval(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> interval(2,5)
[2, 3, 4]
>>>

【python学习笔记】6.抽象的更多相关文章

  1. python学习笔记3_抽象

    这一步的学习四个知识点,如何将语句组织成函数,参数,作用域(scope),和递归 一.函数 1.抽象和结构 抽象可以节省很多的工作量,实际上它的作用更大,它是使得计算机程序让人读懂的关键(这也是最基本 ...

  2. Python学习笔记之抽象

    一.创建函数 >>> import math >>> x=1 >>> y=math.sqrt >>> callable(x) # ...

  3. 【python学习笔记】7.更加抽象

    [python学习笔记]7.更加抽象 类的定义就是执行代码块 在内存保存一个原始实例,可以通过类名来访问 类的实例化,是创建一个原始实例的副本, 并且所有成员变量与原始实例绑定 通过修改实例变量,可以 ...

  4. python学习笔记4_类和更抽象

    python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型 ...

  5. 【Python学习笔记之二】浅谈Python的yield用法

    在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...

  6. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  7. Deep learning with Python 学习笔记(4)

    本节讲卷积神经网络的可视化 三种方法 可视化卷积神经网络的中间输出(中间激活) 有助于理解卷积神经网络连续的层如何对输入进行变换,也有助于初步了解卷积神经网络每个过滤器的含义 可视化卷积神经网络的过滤 ...

  8. Deep learning with Python 学习笔记(3)

    本节介绍基于Keras的使用预训练模型方法 想要将深度学习应用于小型图像数据集,一种常用且非常高效的方法是使用预训练网络.预训练网络(pretrained network)是一个保存好的网络,之前已在 ...

  9. Deep learning with Python 学习笔记(2)

    本节介绍基于Keras的CNN 卷积神经网络接收形状为 (image_height, image_width, image_channels)的输入张量(不包括批量维度),宽度和高度两个维度的尺寸通常 ...

随机推荐

  1. ASP.NET Core 使用 URL Rewrite 中间件实现 HTTP 重定向到 HTTPS

    在传统 ASP.NET 程序中,我们可以通过配置 IIS 的“URL 重写”功能实现将 HTTP 请求重定向为 HTTPS .但是该方法在 ASP.NET Core 应用中不再工作.在 ASP.NET ...

  2. 在centos 6.8下安装docker

    1.检查自己的系统内核是不是64位系统,因为docker只能安装在64位系统中 命令: uname -a 结果 2.6.32-642.6.2.el6.x86_64 2.查看自己centos的版本 ca ...

  3. mybatis3:Invalid bound statement (not found)

    最近在玩ssm框架搭建,突然发现最后的时候mybaits和SpringMvc进行整合的时候出现错误 Invalid bound statement (not found) 这个错误有可能出现在以下几个 ...

  4. 1.8 range

    哈哈,前边忘了介绍这个知识点了,老是用人家,不介绍一下都不好意思了. range()函数是一个用来创建数字序列的函数. 问题来了,为什么要写函数? 封装代码啊,让使用者不需要关心具体业务逻辑是如何实现 ...

  5. H3C交换机的端口隔离

    H3C端口隔离 1.同一个VLAN下隔离物理端口 2.在隔离组中的端口不能相互访问 3.隔离组内的端口,可以与同一VLAN下的其他端口通信 配置: [H3C]port-isolate group 1 ...

  6. 命令行下编译Wordcount

    1. 编辑WordCount.java文件,在下载的hadoop安装包里有WordCount的例子 http://mirrors.hust.edu.cn/apache/hadoop/common/ha ...

  7. 【前端】Angular2 Ionic2 学习记录

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/angular2_ionic2.html 一.建立项目 ionic start ProductName super ...

  8. Ubuntu 11.10下GRUB 2 1.99版编译安装笔记

    Ubuntu 11.10下GRUB 2 1.99版编译安装笔记 以下的安装笔记,都是QLi自己学习grub2 时,所整理的,还是新手,有错误的话,请大家帮忙就别提出来了. 最新版grub V1.99官 ...

  9. java自带的类压缩和下载,以及递归删除动态的文件(shiro项目中来的十)

    详见项目,不用借助于任何外在的jar包,通过jre自带的实现.

  10. Python基础_文件的的处理及异常处理

    今天主要讲讲文件读写及异常处理. 一.文件操作 1.1 文件的创建及读 打开文件 open 函数  open(file,[option]) file 是要打开的文件 option是可选择的参数文件的打 ...