深度学习之美(张玉宏)——第四章 人生苦短我用python
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的更多相关文章
- TensorFlow(实战深度学习框架)----深层神经网络(第四章)
深层神经网络可以解决部分浅层神经网络解决不了的问题. 神经网络的优化目标-----损失函数 深度学习:一类通过多层非线性变化对高复杂性数据建模算法的合集.(两个重要的特性:多层和非线性) 线性模型的最 ...
- AI - 深度学习之美十四章-概念摘要(8~14)
原文链接:https://yq.aliyun.com/topic/111 本文是对原文内容中部分概念的摘取记录,可能有轻微改动,但不影响原文表达. 08 - BP算法双向传,链式求导最缠绵 反向传播( ...
- AI - 深度学习之美十四章-概念摘要(1~7)
原文链接:https://yq.aliyun.com/topic/111 本文是对原文内容中部分概念的摘取记录,可能有轻微改动,但不影响原文表达. 01 - 一入侯门"深"似海,深 ...
- 《Android深度探索HAL与驱动开发》第四章阅读心得
Android源代码包含了很多内容,可以实现拍照.计算机.日历.相册.拨号器等功能.配置Android源代码下载环境需要如下几步: (1)创建一个用于存放下载脚本文件的目录: (2)下载repo脚 ...
- 统计学习导论:基于R应用——第四章习题
第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0. ...
- 我的学习之路_第三十四章_jsp
jsp 在只有servlet时,输出页面内容比较麻烦(成本高,java代码中输出HTML标签),所以需要一种技术,主要是HTML页面的代码(HTML,css,js),可以嵌入java代码,来实现动态页 ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)
##机器学习(Machine Learning)&深度学习(Deep Learning)资料(Chapter 2)---#####注:机器学习资料[篇目一](https://github.co ...
- github上热门深度学习项目
github上热门深度学习项目 项目名 Stars 描述 TensorFlow 29622 使用数据流图进行可扩展机器学习的计算. Caffe 11799 Caffe:深度学习的快速开放框架. [Ne ...
随机推荐
- Noip2018退役记。
下面是边考试边写的严肃版退役记\(:D\) Day0 其实我本来想取个这个名字:\(NOIP2018\)提高组复赛试题解析 但是这个博客自己求生欲望太强自己改名了. 先占个坑. noip考前毒奶 \( ...
- JVM垃圾回收之CMS收集器
从前文JVM垃圾回收几种常见算法和常见收集器我们知道,CMS是老年代垃圾收集器.CMS 收集器主要关注系统停顿时间.CMS 是 Concurrent Mark Sweep 的缩写,意为并发标记清除,从 ...
- webview默认是不开启localstorage的
.setDomStorageEnabled(true);// 打开本地缓存提供JS调用,至关重要 转载 https://blog.csdn.net/xhf_123/article/details/77 ...
- MySql截取手机号
IF(IFNULL(phone_number,'')='','',CONCAT(LEFT(phone_number,3),'****',RIGHT(phone_number,4))) phone_n ...
- CodeForces-585B(BFS)
链接: https://vjudge.net/problem/CodeForces-585B 题意: The mobile application store has a new game calle ...
- Docker(2)--Centos7 上安装部署
Centos7 上安装docker Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比 ...
- shiro框架学习-5-自定义Realm
1. 自定义Realm基础 步骤: 创建一个类 ,继承AuthorizingRealm->AuthenticatingRealm->CachingRealm->Realm 重写授权方 ...
- windows 环境如何启动 redis ?
1.cd 到 redis 的安装目录 C:\Users\dell>cd C:\redis 2.执行 redis 启动命令 C:\redis>redis-server.exe redis.w ...
- std::string 和 CString问题
std::string stdTemp; CString strTemp; strTemp = stdTemp; ;//这一步直接赋值可不可以 因为CString可以接受const char*的 ...
- [BZOJ1718]:[Usaco2006 Jan] Redundant Paths 分离的路径(塔尖)
题目传送门 题目描述 为了从F个草场中的一个走到另一个,贝茜和她的同伴们有时不得不路过一些她们讨厌的可怕的树.奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分 ...