python面向对象1

编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪)

     面向过程编程 - 算法和逻辑
     函数式编程 - 函数
     面向对象编程 - 类和对象

类和对象

  • 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字段赋值来约束当前类对象有哪些对象属性

你可能感兴趣的:(python面向对象1)