一、类和对象
1、万物皆对象
2、对象:用来描述客观事物的一个 实体 ,由一组 属性 和 方法 构成
3、属性:对象具有的各种特征,每个对象的每个属性都有特定值
4、方法:对象执行的操作
5、类:对象的分类,分类就是认识对象的过程
二、面向对象创建:定义某个类的对象具有的属性(变量)和方法(函数)
# 思路:
# 定义类 --> 人类
# 编写类的属性:姓名、年龄、id(身份证号)、手机号
# 编写类的方法:吃、喝、玩、睡、上班
class Person:
# 编写属性(变量)
name = "杨幂"
age = 30
gender = '女'
# 我不想用指定属性,我想自己创建姓名
def set_param(self, name): # age、gender一样操作
self.name = name
print(f'姓名:{self.name}')
# 如属性很多,那就很麻烦,我们可以使用 def __init__()去构造
# 编写方法(函数),无参
def eat(self):
print('eating')
def drink(self):
print('drinking')
def play(self):
print('playing')
def sleep(self):
print('sleeping')
@classmethod
def work(self):
print('working')
# 对象的构造
YM = Person()
# 调用方法
YM.sleep()
YM.work()
zs = Person()
zs.set_param('张三')
# 类访问方法,需要添加一个装饰器@classmethod
Person.eat()
# def __init__() 去构造属性
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
# 编写方法(函数),有参
def eat(self, food):
print(f'{self.name}在吃{food}')
def drink(self, sthing):
print(f'{self.name}在喝{sthing}')
def play(self):
print(f'{self.name}在玩')
def sleep(self):
print(f'{self.name}在睡觉')
def work(self):
print(f'{self.name}正在工作')
def info(self): # 输出信息
print("该人的信息:", self.name, self.age, self.gender)
# 构造对象输出信息
lihaoran = Person(name='李浩然', age=32, gender='男')
# 调用方法
lihaoran.info()
lihaoran.work()
lihaoran.sleep()
三、面向对象思想:封装、继承、多态
1、封装(属性私有化)
- 私有属性可以被查看,但是不能被修改 —> get方法
- 私有属性不被外界查看,但可以被外界修改 —> set方法】
"""封装(属性私有化)"""
class Student:
def __init__(self, name, age, xh, id, address):
self.name = name # 默认公共属性(允许外界读取+修改)
self.age = age # 默认公共属性(允许外界读取+修改)
self.xh = xh
self.__id = id # 私有属性(不允许外界读取+修改)
self.__address = address # 私有属性(不允许外界读取+修改)
# 私有属性可以被查看,但是不能被修改 ---> get方法
def getid(self):
return self.__id
def setaddress(self, newadress):
self.__address = newadress
def info(self):
print('学生的基本信息:', self.name, self.age, self.xh, self.__id, self.__address)
zhangsan = Student('Tom', 18, '001', '340104555555555555', '南京')
# 私有属性(不允许外界读取+修改),如果想查看get方法
# print(zhangsan.id) # 没有getid-->报错AttributeError: 'Student' object has no attribute 'id'
read_student_id = zhangsan.getid()
print(f'查看张三id:{read_student_id}')
zhangsan.info()
zhangsan.setaddress("合肥")
zhangsan.info()
2、继承、多态
- 继承在父类基础上构造出新的类,子类可以拥有继承**父类的属性和方法
- 多态:指一个对象可以用子类的特点也可以父类的特征
class Animal:
def __init__(self, name, color):
self.name = name
self.color = color
def eat(self, food):
print(f'{self.name}在吃{food}')
def drink(self, sthing):
print(f'{self.name}在喝{sthing}')
def play(self):
print(f'{self.name}在玩')
def sleep(self):
print(f'{self.name}在睡觉')
# 继承
class Dog(Animal):
def __init__(self, name, color, age):
super().__init__(name, color) # super()调用父类对象
self.age = age # 属性有个性(构造属性重写)
def kaijia(self):
print(f"{self.name}看家")
hashiqi = Dog('哈士奇', '黑白', 6)
hashiqi.eat('骨头')
# 多态 方法上个性(构造方法重写) 独特个性
hashiqi.kaijia()
class Cat(Animal):
def __init__(self, name, color):
super().__init__(name, color) # super()调用父类对象
cat = Cat('波斯猫', 'red')
cat.eat('鱼')
# cat.kaijia() 因为猫不会看家,这是狗的独特个性
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
Python资料、技术、课程、解答、咨询也可以直接点击下面名片,
添加官方客服斯琪
↓