1 函数参数

(1)收集参数:以一个星号*加上形参名的方式,表示这个函数的实参个数不定,可能0个可能n个。

def varParaFun(name,*param):
print('位置参数是:',name)
print('收集参数是:',param)
print('第一个收集参数是:',param[0]) varParaFun('数据之美','hello',123,'abc') #位置参数是: 数据之美
#收集参数是: ('hello', 123, 'abc')
#第一个收集参数是: hello

(2)收集参数:用两个星号(**)来标定可变参数,将变参数打包为字典。它表明可变参数是字典元素。调用函数的方法则需要采用诸如 arg I =value l的形式。

def varFun(**param):
if len(param)==0:
print('None')
else:
print(param) varFun(a='beauty',b=2) #{'a': 'beauty', 'b': 2}

2 传值还是传引用——传引用

  如果参数传递的是不可变对象,为了维护它的“不可变”属性,函数内部不得不重构一个实参的副本,这个实参的副本即形参和主调函数提供的实参在内存中实际分处于不同位置。因此,对函数形参的修改并不会对实参造成任何影响,因此在结果上看起来和传值一样。函数中对形参的改变只是新生成一个东西,再冠以相同的名称。

def foo1(a):
a=a+('d','e')
print('调用之中:',a) tuple1=('a','b','c')
print('调用之前:',tuple1)
foo1(tuple1)
print('调用之后:',tuple1) def foo2(a):
a.append('可变对象')
print('调用之中:',a) List1=['a',1,2,3]
print('调用之前:',List1)
foo2(List1)
print('调用之后:',List1) #调用之前: ('a', 'b', 'c')
#调用之中: ('a', 'b', 'c', 'd', 'e')
#调用之后: ('a', 'b', 'c') #调用之前: ['a', 1, 2, 3]
#调用之中: ['a', 1, 2, 3, '可变对象']
#调用之后: ['a', 1, 2, 3, '可变对象']

3 面向过程与面向对象

POP(Procedure Oriented Programming )程序=算法+数据结构,设计思想是"How to do",how即指函数。

OOP(Object Oriented Programming)程序=对象+消息传递=(对象+方法)+消息传递,设计思想是“Who to do”,who指即指对象,对象有各种方法。

4 python中的面向对象——类

  (1)类:类中的数据成员可大致分为两类:属于对象的数据成员和属于类的数据成员。属于对象的数据成员主要在__init__()中定义,同一个类定义下的不同对象之间互不影响,而属于类的数据成员为所有对象共享。以__开始的数据成员或方法,属于私有的,这类内部成员只能在类内使用不能被继承,但可以通过“对象名._类名__xxx”的方式访问。以_开头的属于保护成员,只对自己和子类开放权限,不能通过“from module import *”的方式引入。“__xxx__”形式属于python系统自定义的特殊成员,如__init__,__del__。类中的方法参数必须包含self且为第一个参数。

class Person:
height=162 #定义类的数据成员 def __init__(self,name,age,weight):
self.name = name #定义对象的数据成员属性
self.age = age
self.__weight = weight #私有数据成员,只能通过类内的公有成员函数访问 def speak(self): #公有成员函数
print('我叫%s,我的年龄是%d,我的身高是%dcm,我的体重是%dKG.' %(self.name,self.age,Person.height,self.__weight)) people=Person('PinkFox',23,46)
people.speak() #调用公有成员函数,也称访问方法 Person.height=165 #为属于类的数据成员重新赋值
people.name='RedRabbit'
people.age=24 #访问属性并赋值
people.speak() #我叫PinkFox,我的年龄是23,我的身高是162cm,我的体重是46KG.
#我叫RedRabbit,我的年龄是24,我的身高是165cm,我的体重是46KG.

  (2)python中的继承:继承的目的在于实现代码重用,即对已有的成熟的功能,子类从父类执行“拿来主义”。父类又称基类、超类,子类又称派生类。

class Students(Person):
school='霍格沃茨魔法学校' def __init__(self,name,age,weight,grad):
self.grade=grad
#调用父类的构造方法,初始化数据成员
Person.__init__(self,name,age,weight)
def speak(self):
print('我叫%s,我的年龄是%d,我的身高是%dcm,我在%s读%d年级。' %(self.name,self.age,Person.height,Students.school,self.grade)) stu=Students('PinkFox',13,36,5)
Person.height=158
stu.speak() #我叫PinkFox,我的年龄是13,我的身高是158cm,我在霍格沃茨魔法学校读5年级。

人生就是一次次幸福的相聚,夹杂着一次次伤感的别离。我们不是在最好的时光相遇,而是遇见了你才有了最好的时光。——改编自《老师,好》

链接:https://pan.baidu.com/s/10axH5mCSPjXgMamLvIT0ug
提取码:w987
ps:读书笔记不再更,其他部分lstm讲的特别好,想看的小伙伴可以自己下下来看看。

深度学习之美(张玉宏)——第四章 人生苦短我用python的更多相关文章

  1. TensorFlow(实战深度学习框架)----深层神经网络(第四章)

    深层神经网络可以解决部分浅层神经网络解决不了的问题. 神经网络的优化目标-----损失函数 深度学习:一类通过多层非线性变化对高复杂性数据建模算法的合集.(两个重要的特性:多层和非线性) 线性模型的最 ...

  2. AI - 深度学习之美十四章-概念摘要(8~14)

    原文链接:https://yq.aliyun.com/topic/111 本文是对原文内容中部分概念的摘取记录,可能有轻微改动,但不影响原文表达. 08 - BP算法双向传,链式求导最缠绵 反向传播( ...

  3. AI - 深度学习之美十四章-概念摘要(1~7)

    原文链接:https://yq.aliyun.com/topic/111 本文是对原文内容中部分概念的摘取记录,可能有轻微改动,但不影响原文表达. 01 - 一入侯门"深"似海,深 ...

  4. 《Android深度探索HAL与驱动开发》第四章阅读心得

     Android源代码包含了很多内容,可以实现拍照.计算机.日历.相册.拨号器等功能.配置Android源代码下载环境需要如下几步: (1)创建一个用于存放下载脚本文件的目录:  (2)下载repo脚 ...

  5. 统计学习导论:基于R应用——第四章习题

    第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0. ...

  6. 我的学习之路_第三十四章_jsp

    jsp 在只有servlet时,输出页面内容比较麻烦(成本高,java代码中输出HTML标签),所以需要一种技术,主要是HTML页面的代码(HTML,css,js),可以嵌入java代码,来实现动态页 ...

  7. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  8. 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)

    ##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...

  9. github上热门深度学习项目

    github上热门深度学习项目 项目名 Stars 描述 TensorFlow 29622 使用数据流图进行可扩展机器学习的计算. Caffe 11799 Caffe:深度学习的快速开放框架. [Ne ...

随机推荐

  1. Linux安装redis,启动配置不生效(指定启动加载配置文件)

    一.今天有个同学问我,为什么明明安装了redis,修改了配置,启动的时候,配置还是不生效.如下图是安装后的redis文件图. 二.想加载上图中的redis.conf,进入到src中寻找到启动文件red ...

  2. MapReduce 中的两表 join 方案解析

    1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的 ...

  3. Python---webserver3

    一.v07-添加路由功能 - 路由:能够理解请求并按照请求调用相应处理函数的模块 - 理解请求内容 - 能够调用或者指定相应业务处理模块 - 算法: - 按行读取传入报文 - 假如报文能用空格分割成三 ...

  4. VSCode编辑器用户设置

    {"gitlens.advanced.messages": {"suppressCommitHasNoPreviousCommitWarning": false ...

  5. 苹果cms怎么上传本地视频资源

    今天我们来简单分享下苹果cms怎么上传本地视频,采集资源站的资源我们已经熟知了,但是有的伙伴们想要上传自己制作或是录制的视频应该怎么操作呢?这个问题有多种方法,今天我们先简单的说2种方法. 一,上传到 ...

  6. pythonCSV模块

    在爬虫过后会取得很多信息! 将信息存起来方法还很多中!今天提一下CSV模块 导入模块 import csv 这里先写个列表 rows = [['zhangsan',20],['lisi',22],[' ...

  7. Monkeyrunner自动化测试由浅入深(第一节)

    (原版)Monkeyrunner自动化测试由浅入深(第一节) 博主原创,请勿转载 第一.相关软件和环境的配置 1.Android sdk下载和配置 2.java jdk下载和配置 第二.Monkeyr ...

  8. NOIP2018复赛游记

    Day -oo (这里是负无穷啦qwq) 为了NOIP2018,我已经准备了好久 暑假的封闭式训练,国庆后停掉了晚自习,距NOIP一周时更是停掉了全天的课...... 我像是一个圆,在近乎无限的空间里 ...

  9. RestTemplate 调用本地服务 connection refused

    当需要使用服务间的互相调用的时候,通常来说最优雅的方式莫过于Feign调用了.但是有时候特殊原因还是需要使用httpClient之类的工具. 本次我在使用RestTemplate调用本地服务的时候,会 ...

  10. 惠普服务器DL360G6安装ESXi主机后遗忘密码用u盘重置密码

    惠普服务器DL360G6安装ESXi主机后遗忘密码重置密码 先用rufus制作U盘启动盘,启动盘一定要用惠普专用hpe的esxi版本,否则安装会报错, 下载https://www.iplaysoft. ...