编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪)
面向过程编程 - 算法和逻辑
函数式编程 - 函数
面向对象编程 - 类和对象
类和对象
1.什么是类,什么是对象
类就是拥有相同属性、相同功能的对象的集合(抽象)2.类的声明 - 确定这个类的共同属性和功能是什么
1)语法:
class 类名:
类的说明文档
类的内容
2)说明:
class - 关键字
类名 - 要求:标识符,不能是关键字
规范:首字母大写,采用驼峰式命名规范,见名知意,且不能使用系统提供的函数名和类名
函数声明文档 - 和函数声明一样
类的内容 - 主要包含类的属性和方法(方法声明在类中的函数)3.声明对象
1)语法:
对象 = 类()
对象.方法()4.对象方法
类中的方法为:对象方法、类方法和静态方法
1)对象方法
a.怎么声明:直接声明(声明前不用加装饰器)在类中的函数
b.特点:自带self参数;用对象调用对象方法的时候self不用传参,系统会将当前对象传给self。self可以做到谁调用就指向谁
c.怎么调用:对‘象名.方法()’的形式来调用 - 通过对象来调用
注意:不要用类调用对象方法5.构造方法 - 函数名和类名一样用来创建类的对象的函数
python中声明类的时候,系统会自动为这个类创建一个构造函数,函数的作用是创建对象
构造方法的执行过程:
a.在内存中开辟空间创建对象
b.用创建好的对象去调用init方法
c.返回值对象在内存中的地址6.init方法
声明在类中用来对对象镜像初始华的方法;(当对象一创建出来,这个方法就会被自动调用)
注意:创建对象的时候构造方法需不需要传参,需要喜欢几个参数,看这个类的init方法
类中的属性
属性就是声明在类中的变量
类中的属性分为:字段、对象属性
1)字段
a.怎么声明:声明在类的函数的外面的变量就是字段
b.怎么使用:通过类去使用(以'类名.字段'的方式使用)
c.什么时候用:属性的值不会因为对象不同而不同,这样的属性就声明成类的字段
2)对象属性
a.怎么声明:以'self.属性名=值'的形式声明在init方法中
b.怎么使用:通过对象名去使用(对象名.属性名)
c.什么时候用:属性的值可能会因为对象的不同而不一样,这样的属性就声明成对象属性
练习:声明一个dog类,拥有属性:名字、年龄、性别和品种,名字,品种必须赋值
# 拥有两个方法,一个用来打印狗的信息,一个用来叫唤的方法
class Dog:
def __init__(self, name, age, sex, breed):
self.name = name
self.age = age
self.sex = sex
self.breed = breed
def dog_bark(self):
print('{}:汪汪汪汪'.format(self.name))
def imformation(self):
print(self.name, self.age, self.sex, self.breed)
dog = Dog('肥狗', '1', '公', '哈士奇')
dog.dog_bark()
dog.imformation()
对象属性增删查改
python中类的对象的对象属性支持增删改查
查(获取属性的值)
a.方法一:对象.属性
b.方法二:getattr(对象, 属性名:str) / getattr(对象, 属性名:str, 默认值 )
c.方法三:对象.getattrbute(属性名)
注意:属性名不确定时用第二种方法(getattr(对象, 字符串变量))
改/增
a.方法一:对象.属性 = 值(存在时就修改,不存在是就添加)
b.方法二:setattr(对象,属性,值)
删(删除某个对象属性)
a.方法一:del 对象.属性
b.方法二:delattr(对象,属性名)
slots魔法
作用:通过给slots字段赋值来约束当前类对象有哪些对象属性