先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
class Nmae(object):
class关键字 + 类名(首字母大写) + 小括号(括号内填写 object:为python中的通用对象,书写通用对象的 class 会带有更多的内置功能) + 冒号
变量 = 变量的值
可以定义 类 的变量
def func(self):
do
也可以定义 类 的函数:类函数内有个必传参数 ‘self’ ,一定要书写在类函数的第一参数位,这是 python 内部的语法规定
需要注意的是 类的属性与函数的缩进要统一
类的使用示例如下:
定义一个动物类;动物类中定义一个变量;定义一个 跑 的函数(属性)
class Animal(object): # 定义一个类
name = ‘哈士奇’ # 类变量(类属性)
def run(self): # 类函数:将 self 作为第一个参数传入 类函数 ‘run()’
print(f’{self.name} can run’)
'self.name’为类属性,如果不加上’self.‘则不会找到类属性;如果想要在类函数中调用类属性就必须加上’self.’
‘self’ 参数具备两个功能
1.可以帮助我们调用类属性
2.将使用 self 的函数调用到类中,如果我们有另一个函数,可以在另一个函数中通过 ‘self.’ 来进行调用 run 函数
dog = Animal() # 类的实例化
print(dog.name) # 通过实例化进行属性调用
dog.run() # 通过实例化,进行函数调用
>>> 执行结果如下:
>>> 哈士奇
>>> 哈士奇 can run
类的参数 - self
在类里面,所有实例方法都需要加 self 参数,且排在第一个,有且仅有一个。
self 参数的含义 :在类中定义的方法,第一个参数 self 指向调用该方法的实例对象,在方法中通过 self.属性 这样的形式访问对象的实例属性
-
self 是 类函数 中的必传参数,且必须放在第一个参数位置
-
self 是一个对象,它代表着实例化的变量自身
-
self 可以直接通过点(.)来定义一个类变量 如
self.name = Neo
,如果在函数体内定义变量可以通过self
+.
+变量名
来进行赋值。 -
self 中的变量与含有 self参数的函数可以在类中的任何一个函数内随意调用
-
非函数中定义的变量在定时的时候不需要使用 self
如何理解 self 参数
类比
-
如果把 类 比作造房子的图纸
-
类实例化 后的对象是真正可以住的房子
-
根据一张图纸(类),可以设计出成千上万的房子(实例对象)
-
每个房子长相都是类似的(都有相同的实例属性和实例方法),但它们都有各自的主人
-
如何区分不同的房子:通过 self 参数,可以保证每个房子的主任仅能进入自己的房子(每个实例对象只能调用自己的实例属性和实例方法)
重点
-
一个类可以产生多个实例对象,当某个实例对象调用实例方法,该对象会把自身的引用作为第一个参数自动传递给该方法
-
换句话说:Python 会自动将实例方法的第一个参数指向调用该方法的对象
-
这样,Python 解释器就知道到底要执行哪个对象的实例方法了
-
调用实例方法的时候,不需要手动为第一个参数传值
可能大家还不是很理解,根据类的两个关键要素属性和方法,具体来使用self看看实际应用效果:
class Persion(object):
name = None
age = None
def run(self):
print(f’{self.name} 的健身项目是’跑步’')
def swim(self):
print(f’{self.name} 的健身项目是’游泳’')
neo = Persion()
neo.name = ‘Neo’
neo.run()
>>> 执行结果如下:
>>> Neo 的健身项目是’跑步’
我们再重新实例化一个对象,看看这个新的实例化对象是否同步了 neo.name
class Persion(object):
name = None
age = None
def run(self):
print(f’{self.name} 的健身项目是’跑步’')
def swim(self):
print(f’{self.name} 的健身项目是’游泳’')
neo = Persion()
neo.name = ‘Neo’
neo.run()
jack = Persion()
jack.run()
>>> 执行结果如下:
>>> Neo 的健身项目是’跑步’
>>> None 的健身项目是’跑步’
从输出结果可以看到 我们修改的 neo 实例化对象的对应的 name 的值仅作用于自己的实例,而 Persion 类,与新的 jack 实例化对象并没有受到影响。
所以即使使用新的对象进行实例化,还是需要新的实例化对象来修改类的属性,来达到我们自己想要的效果。其实很好理解,都是人类,但是每个人的个体化都是不同的。所以他们拥有人类的共同属性后 (name,age)
,也可以自定义自己的属性。
现在我们的 Persion 类 定义了两个属性 'name' 与 'age' ,如果我们再添加一个属性呢?
,其实是可以的。现在我们针对 'Jack' 增加一个自定义属性
,尝试一下。
class Persion(object):
name = None
age = None
def run(self):
print(f’{self.name} 的健身项目是’跑步’')
def swim(self):
print(f’{self.name} 的健身项目是’游泳’')
neo = Persion()
neo.name = ‘Neo’
neo.run()
jack = Persion()
jack.top = 180
print('‘Jack’的身高是’, jack.top)
>>> 执行结果如下
>>> Neo 的健身项目是’跑步’
>>> 'Jack’的身高是 180
print('‘Neo’的身高是’, neo.top)
>>> 执行结果如下:
>>> AttributeError: ‘Persion’ object has no attribute ‘top’
从上面的 jack.top
与 neo.top
的自定义属性,我们发现三件事。
-
1.实例化对象可以自定义属性
-
2.每个实例化对象自己定义的属性与其他实例化对象不通用。
-
3.
Persion
类在实例化对象之后,依然只有自己的两个属性(name 和 age)
,实例化对象自定义的属性仅作用于自己,并不影响类
。
self 的解析与总结
说实话,关于 Python 中的 self 我一开始接触的时候,也是给我搞的云里雾绕、五迷三道的…这里做个总结,希望对同样云里雾绕、五迷三道的童鞋有所帮助。
-
Python 中 self 代表的是
类的示例
; self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 -
Python 中 self 只有在针对 类 的情况下,才是有意义的。
-
self
只能用在 python 类 的方法中。
具体的举例说明如下:
属性
- 关于属性 - 1:如果变量定义在类下面而不是类的方法下面,那这个变量既是类的属性也是类实例的属性。
class Cat(object):
eyes = ‘有2只眼睛’
legs = ‘有4条腿’
tail = ‘有1只尾巴’
dragonLi = Cat()
dragonLi.name = ‘狸花猫’
dragonLi_eyes = dragonLi.eyes
dragonLi_legs = dragonLi.legs
dragonLi_tail = dragonLi.tail
print(’ 猫 ’ + Cat.eyes, Cat.legs, Cat.tail)
print(dragonLi.name, dragonLi_eyes, dragonLi_legs, dragonLi_tail)
>>> 执行结果如下:
>>> 猫 有2只眼睛 有4条腿 有1只尾巴
>>> 狸花猫 有2只眼睛 有4条腿 有1只尾巴
- 关于属性 - 2:如果变量定义在类的方法下面,如果加了self,那这个变量就是类实例的属性,不是类的属性;如果没有加self,这个变量只是这个方法的局部变量,既不是类的属性也不是类实例的属性。
class Cat(object):
eyes = ‘有2只眼睛’
legs = ‘有4条腿’
tail = ‘有1只尾巴’
def init(self): # 关于__init__() 会在下面的 '类的构造器’有详细讲解
self.color_01 = ‘黄棕色’
color_02 = ‘黑棕色’
dragonLi = Cat()
dragonLi_color_01 = dragonLi.color_01
print(‘狸花猫有两种披毛颜色,一种是:’, dragonLi_color_01)
>>> 执行结果如下:
>>> 狸花猫有两种披毛颜色,一种是: 黄棕色
dragonLi_color_02 = dragonLi.color_02
print(‘狸花猫有两种披毛颜色,另一种是:’, dragonLi_color_02)
>>> 执行结果如下:
>>> AttributeError: ‘Cat’ object has no attribute ‘color_02’.
方法
关于方法1:如果在类中定义函数时加了self,那这个函数是类实例的方法,而不是类的方法。
class Cat(object):
def eat(self):
print(‘爱吃鱼’)
dragonLi = Cat()
dragonLi.eat()
>>> 执行结果如下:
>>> 爱吃鱼
Cat.cat()
>>> 执行结果如下:
>>> TypeError: Cat.eat() missing 1 required positional argument: ‘self’
关于方法2:如果在类中定义函数时候没有加self,那这个函数就只是类的方法,而不是类实例的方法。
class Cat(object):
def eat():
print(‘爱吃鱼’)
Cat.eat()
>>> 执行结果如下:
>>> 爱吃鱼
dragonLi = Cat()
dragonLi.eat()
>>> 执行结果如下:
>>> TypeError: Cat.eat() takes 0 positional arguments but 1 was given
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
mg.cn/a353983317b14d3c8856824a0d6186c1.png)
六、面试宝典
简历模板![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-IOMsFqme-1713380492269)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!