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. Python深入:编码问题总结

    转自:http://blog.csdn.net/gqtcgq/article/details/47068817 一:字符编码简介          1:ASCII          最初的计算机的使用 ...

  2. 校内题目T2691 桶哥的问题——送桶

    这是一道校内题目,但迷路的蒟蒻们同样被欢迎来此学习QWQ 题目描述: 题目背景 @桶哥本校——皎月pks大佬OrzOrz 买完了桶,桶哥要去送桶. 题目描述 桶哥买了nn个桶, 他要将这些桶送去nn个 ...

  3. java 责任链接模式

  4. 轻松学习JVM——垃圾回收器

    原文链接:https://www.cnblogs.com/leefreeman/p/7402695.html 上一篇我们介绍了常见的垃圾回收算法,不同的算法各有各的优缺点,在JVM中并不是单纯的使用某 ...

  5. springCloud——Dalston.SR5升级到Greenwich.SR2

    老项目: SpringBoot 版本 :1.5.13.RELEASE SpringCloud 版本:Dalston.SR5 项目升级: SpringBoot 版本 :2.1.6.RELEASE Spr ...

  6. electron监听系统托盘,electron是否最小化到系统托盘

    在项目中需要判断窗口是否最小化在系统托盘上,任务栏那已经关闭,查了一晚上的api,始终找不到可以调用的方法,最后绞尽脑汁想到了一个办法,那就是在点右上角的关闭按钮时,加个全局变量,用来标识已经最小到系 ...

  7. js中[]、{}、()区别

    一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数体 {}表示对象.[]表示对象的属性.方法,()如果用在方法名后面,代表调用 如:var LangShen = {&quo ...

  8. HDU 6578 Blank

    hdu题面 Time limit 1000 ms Memory limit 262144 kB OS Windows Source 2019 Multi-University Training Con ...

  9. [BZOJ4695]最假女选手:segment tree beats!

    分析 segment tree beats!模板题. 看了gxz的博客突然发现自己写的mxbt和mnbt两个标记没用诶. 代码 #include <bits/stdc++.h> #defi ...

  10. Spring Cloud架构教程 (三)服务网关(基础)

    通过之前几篇Spring Cloud中几个核心组件的介绍,我们已经可以构建一个简略的(不够完善)微服务架构了.比如下图所示: alt 我们使用Spring Cloud Netflix中的Eureka实 ...