学习心得
这周学习的内容是第八章:《函数》和第九章《类》,早在大一学习C语言的时候我就比较怕函数,在寒假看这本书的时候也是看的马马虎虎看不太懂,现在重新翻看这本书,心中还是有些忐忑的。好在仔细看下去没有出现太大的问题,心中稍安。看到第九章的时候比较吃力,很容易找不到东南西北,故打算整章看下来之后后面再复习一下。下面是我为了方便记忆做的一些笔记。
学习笔记(第八章)
1.形参:函数完成其工作所需的一项信息;
2.实参:调用函数时传递给函数的信息;
3.位置实参:这要求实参的顺序与形参的顺序相同;
4.关键字实参是传递给函数的名称——值对;
5.编写函数时,可给每个形参指定默认值,在调用函数中给形参提供了实参时,python将使用指定的实参值,否则,将使用形参的默认值;
6.切片表示法[:]创建列表的副本;
7.形参名*toppings中的星号让python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中;
python将实参封装到一个元组中,即使函数只收到一个值也如此;
8.如果要让函数接收不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放到最后,python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个实参中;
9.形参**user_info中的两个星号让python创建一个名为user_info的空字典,并将收到的所有名称-值对都封装到这个字典中;
10.要让函数是可导入的,得先创建模块,模块是扩展名为.py的文件;
import语句允许在当前运行的程序文件中使用模块中的代码;
11.导入方法:
(1):编写import语句并在其中指定模块名,就可在程序中使用模块中的所有函数;
如:module_name.function_name()
(2):导入指定函数:
from module_name import function_name
通过逗号分隔函数名,可根据需要从模块中导入任意数量的函数如:
from module_name import function_0,function_1
12.若要导入的函数的名称可能与程序中现有的名称冲突获函数名称太长,可指定别名,通用语法如下:
from module_name import function_name as fn
13.还可给模块指定别名,通用语法如下:
import module_name as mn
14.使用星号运算符可让python导入模块中的所有函数,由于导入了每个函数,可通过名称来调用每个函数,而无需使用句点表示法;
15.给形参指定默认值时,等号两边 不要有空格。
学习笔记(第九章)
1.每个与类相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法,self会自动传递,因此我们不需要传递它;
2.要访问实例的属性,可使用句点表示法,
遇到代码my_dog.sit()时,python在类Dog中查找方法sit()并运行其代码;
3.类中的每个属性都必须有初始值,哪怕这个值是0或空字符串;
4.修改属性的值:
(1):用句点表示法来直接访问并设置属性,如:
my_new_car.odometer_reading = 23;
(2):通过添加方法修改属性的值;
(3):通过方法对属性的值进行递增;
5.一个类继承另一个类时,它将自动获得另一个类的所有属性和方法,原有的类被成为父类,而新类被成为子类。
子类继承了其父类的所有属性和方法,同时还可以定意思自己的属性和方法;
6.创建子类时,父类必须包含在当前文件中,且位于子类前面,定义子类时,必须在括号内指定父类的名称;
7.super()是一个特殊的函数,帮助python将父类的子类练习起来;
8.重写父类方法:可在子类中定义一个这样的方法,即它与要重写的父类方法同名,这样,python将不会考虑这个父类方法,而只关注在子类中定义的相应方法;
9.可导入整个模块,再使用语法module_name.class_name访问需要的类;
10.要导入模块中的每个类,可使用下面的语法:
frrom module_name import*
遇到问题
代码一长就容易碰到各种各样稀奇古怪的问题,很多问题我都看不懂什么意思,只好百度搜索解决办法,好在都不是什么棘手的问题,多是一些格式问题,如我把__init__打成了_init_,下面的横杠是两条“_”而不是一条,还有比较多见就是代码的缩进问题,希望自己以后可以再仔细一点,不要再范那么多的低级错误了。