一、面向对象
1、面向对象和面向过程
面向过程:
优点:复杂问题流程化,进而简单化
缺点:可扩展性差
面向对象:
优点:可扩展性高
缺点:编写复杂
2、类与对象
对象:属性和方法的结合体
类:一系列共同的属性和方法
现实生活中:先有对象再有类
程序中:先有类再有对象
# 定义类(类名建议用驼峰命名)
# class关键字 类名:
class Stutend:
school = 'oldboy'
def study(self):
print('学习')
# 生成对象:类加括号,生成对象
stu_1 = Student()
# 获取属性和方法:通过.获取
print(stu_1.school)
print(stu_1.study)
# 查看类中的属性和函数
print(Student.__dict__)
# 类调用方法,需要传递self参数
Student.study(123)
# 对象调用方法,不许要传递self参数
stu_1.study
# 属性的查找顺序
# 先从对象自身找----->类中找----->没找到就报错
# 向对象放属性
# 方式一:
stu_1 = Student()
stu_1.name = 'nick'
# 方式二:通过__init__方法
class Student:
school = '123'
def __init__(self, name):
self.name = name
def study(self):
print('学习')
# 产生对象
stu_1 = Student('nick')
# 当实例化对象的时候,会自动调用__init__方法,完成对象的初始化3、
3、绑定方法
# 绑定方法:
# 定义在类内部的方法:
# 如果类来调用:就是一个普通函数,有几个参数就需要传几个参数
# 对象来调用:他叫对象的绑定方法,第一个参数不需要传,自动传递
class Student:
school = '123'
def __init__(self, name):
self.name = name
def study(self):
print(f'{self.name}学会了Python')
stu_1 = Student('nick')
stu_1.study()
4、Python中一切皆对象
Python中,字典,列表,字符串......等都是对象
类即类型