python中的数据成员有两类_深度学习之美(张玉宏)——第四章 人生苦短我用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 传值还是传引用——传引用

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

deffoo1(a):

a=a+('d','e')print('调用之中:',a)

tuple1=('a','b','c')print('调用之前:',tuple1)

foo1(tuple1)print('调用之后:',tuple1)deffoo2(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且为第一个参数。

classPerson:

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中的继承:继承的目的在于实现代码重用,即对已有的成熟的功能,子类从父类执行“拿来主义”。父类又称基类、超类,子类又称派生类。

classStudents(Person):

school='霍格沃茨魔法学校'

def __init__(self,name,age,weight,grad):

self.grade=grad#调用父类的构造方法,初始化数据成员

Person.__init__(self,name,age,weight)defspeak(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=158stu.speak()#我叫PinkFox,我的年龄是13,我的身高是158cm,我在霍格沃茨魔法学校读5年级。

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

链接:https://pan.baidu.com/s/10axH5mCSPjXgMamLvIT0ug

提取码:w987

ps:读书笔记不再更,其他部分lstm讲的特别好,想看的小伙伴可以自己下下来看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值