Python学习笔记 B站黑马程序员(终章)

1、Python如果函数需要返回多个值,可以直接用“,”分割不同的返回值,不用加括号,而且还可以把他们赋值到不同的变量拿来使用,默认里面是不可改变的元组
2、Python中交换两个变量的值, 用的是元组,两个变量分别为每个元组的对应的元素
3、列表的相加操作本质上是调用了extend函数
4、Python函数中的缺省参数要放后面,缺省参数就是有默认值的,如果不需要修改就可以省略的参数,必须放在实参后面才可以
5、函数中的形参不需要的赋值语句不需要再加空格
6、函数中一个可以接受一个元组,两个**可以接受字典数据,默认的开发习惯在后面加上args,虽然直接带入元组也可以使用,但是多值函数使得调用更加的简单
7、Python中函数中同时接收元组和字典的时候,需要用到拆包语法,就是在传入的元组变量前加一个*,在传入的字典变量前加入两g个星号
8、递归要有出口,不然会出现死循环,而且Python迭代递归默认是996次,超过之后就会报错
9、Python的面向对象相对于面向过程而言,相当于更大程度的封装,面向过程只封装函数,面向对象封装了更多
10、Python可以使用dir函数查看对象中的所有内置函数
11、类名要大驼峰定义法,class要小写
12、Python中为什么需要对象,因为有了对象,对于大的项目就可以逐步去开发,变成一个一个的类进行开发,不会乱糟糟的
13、Python中一个类可以创建多个对象,而且每个对象的地址各不相同
14、Python中的self相当于每个调用的对象,就是任何对象调用这个类的时候,他就是那个对象本身,随时变化
15、Python中的__init__初始化方法相当于C语言里面的构造函数,相当于只要调用这个类就会自动运行里面的初始化方法
16、Python能够将一对括号内的代码连接在一起,这样的话括号内部如果想换行也会很容易
17、Python中的身份运算符is和is not和“==”、“!=”的区别在于,is比较的是两个变量的地址是否一致,而恒等好是用来判断两个变量的值是否相等,举个例子

a = [1, 2, 3, 4]
b = [1, 2, 3, 4]
>>>a == b
True
>>>a is b
False 

18、私有属性/私有方法(变量名前面加两个下划线)在外界是不能被直接访问的,但是在外面调用内部的方法的时候是可以访问私有属性的
19、Python中的伪私有,所有的私有属性或者私有方法,只要在前面加上一个“下划线+类名+私有属性/私有方法”就可以访问私有属性和私有方法了,哈哈,想不到吧
20、Python在子类继承父类的时候,如果发现父类中的某些方法已经跟子类的需求脱钩了,那么可以重新定义这些方法,在子类中重写一下;如果只是想调用下父类中一部分,然后对父类中的某些方法加以扩展,就可以定义super()这个函数,这样的话可以用super调用父类的方法,同时可以自己重新定义一些想要实现的方法加以扩展。
21、Python子类也不可以调用父类中的私有属性和私有方法
22、Python中也即Pycharm中编写类的时候,如果定义的方法里面没有使用self,也即没有对类产生任何影响,因为self是传递类实例的,如果没有更改那么Pycharm可能认为你是想构造一个静态方法,也就是在类外类内都无所谓。“Mathod ‘xxx’ may be ‘stasic’”
23、Python中在使用super方法调用父类中方法的时候,注意吧super方法写在子类方法里面,并且腰痛super()这样创建出来一个super的对象
24、虽然Python中子类不能在自身内部通过方法得到父类的私有属性和方法,但是可以通过访问父类的公有方法从而间接访问到父类的私有属性和私有方法
25、多继承的时候,如果不同父类有相同的名字,会根据mro的顺序调用,mro就是一个方法搜索顺序,具体使用就是
print(类名.mro),不过尽量不要重名
26、Python3中基类为object类,而且不指定父类就默认继承了这个基类,但是Python2中不会默认带上,而是要手动写上object
27、不同的子类对象使用同样的方法产生不同的结果,多态很典型的例子
28、Python中的类方法,实例方法和静态方法,分别在
1、需要调用类中的属性
2、需要使用实例
3、1和2都不需要的时候(使用的时候括号内最好不要加参数)
29、使用new方法可以使得不同的实例化对象的地址相同,内存空间一致
30、使用try和except关键字可以尝试捕获可能出现的错误,这样就使得程序不会因为异常而被终止
31、except Exceptation as result
32、使用from import 的时候,如果从两个不同的文件中导入了相同的函数,那么后面导入的会把前面导入的覆盖掉
33、Python解释器在导入模块时会首先在当前目录访问,然后再去库函数中寻找
34、Python的__del__函数是要到所有代码运行完才会释放内存,而不仅仅是类中的函数运行完
35、类中的测试代码可以用一个判断语句搞定,这样它在被导入的时候测试代码就不会被执行

if __name__ ==__main__
	(测试代码)

因为__name__如果是该文件执行,name__会自动变成__main,而在被调用的时候哦,__name__的值不会发生变化,=那么这部分测试代码就不会被执行了
36、读取文件时,如果因为中文出现乱码,可以在open函数后面加上如下代码:(encoding = “UTF8”)

file = open("text.txt", encoding="UTF8")
text = file.read()
print(text)
file.close()

37、因为open函数是个默认只读的,不能写入,可以加第二个参数为r,a,w
38、eval函数可以把传入的字符串当做数字进行四则运算,而忽略掉加的引号(回想起学c还要手动写四则运算)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值