【Python】基础学习(五)面向对象编程


面向过程编程的:C

面向对象的编程:java,python

面向过程:

  一种以过程为中心的编程思想;例如:把大象放冰箱里分三步。

  简单的事情;

面向对象:

  一种更符合我们思维习惯的编程思想;例如,生产一个汽车,把汽车的零件拆分,分不同的团队去生产,最后将零件组装成汽车;

  面向对象开发就是不断的创建对象,使用对象,操作对象做事情;例如:人类,张三 就是一个实例;

  复杂的事情

  语言层面:封装代码和数据

  规格层面:对象是一系列可被使用的公共接口

  从概念层面:对象是某种拥有责任的抽象

面向对象和面向过程是相辅相成的,底层的逻辑也可能是面向过程的;

面向对象程序设计规则:

  首先分析有哪些类

  每个类有哪些属性和行为

  类与类之间存在的关系

类、实例、方法、变量

  类:抽象的概念,一类事物。

  方法:类中定义的函数,对外提供的服务。例如,接口

  类变量:类里拥有的属性,类变量在真个实例化的对象中是公用的;可以通过类进行访问,可以被修改,例如,persion.name

  实例引用:实例化一个对象

  实例变量:以self.变量名 的方式定义的变量;通过实例引用,可以被修改,例如,zs = persion()  zs.name

类方法和实例方法的区别

  类方法是不能直接访问,如果要访问需要加装饰器,@classmethod,加了装饰器可以通过实例方法进行方法

  实例方法是可以直接进行访问的

例:

1----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

class Person: #
    name = "Name" #类变量,属性
    age = 20
    gender = "male"
    def __init__(self,name): #构造方法,初始化的方法 执行zs = Person()之前会先执行__init__
        print("init fuction")
        self.name = name  #实例变量,每个实例拥有的属性
    def set_param(self,name): #设置类的属性值;该方法比较麻烦,set_param自己睡衣定义的
        self.name = name
    def dance(self): #方法
        print("会跳舞")
    def sing(self):
        print("会唱歌")
zs = Person(name="Bob") #类的实例化
zs.dance() #方法
zs.name #属性
zs.__dict__ #内置的方法

2--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

class Person:  #
    name = "Name"  #类变量,属性
    age = 20
    gender = "male"
    def __init__(self,name): #构造方法,初始化的方法 执行zs = Person()之前会先执行__init__
        print("init fuction")
        self.name = name
    def dance(self):  #方法
        print("会跳舞")
    @classmethod
    def sing(self):
        print("会唱歌")
Person.sing()