python 第十五章 面向对象

74 阅读3分钟

大家好我是程序员_蓝天, 本文是为了方便初学者能够快速学习python,写的可能不是很好,希望大家多多包涵。 每个赞都是我前进的动力

1. 面向过程(POP)与面向对象(OOP)

面向过程:核心是过程二字,过程指的是解决问题的步骤。编程的时候先把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。适合简单任务,不需要过多协作。 面向对象:核心是对象二字,对象是由属性和方法组成的。编程的时候首先思考的是怎么设计这个事物。 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤造车的问题”。找轮胎厂完成制造轮胎的步骤,发动机厂完成制造发动机的步骤;这样,发现大家可以同时进行车的制造,最终进行组装,大大提高了效率。

总结:

在编程中,不同的编程范式(面向过程,面向对象)不分好与坏,不同的编程场景使用不同的范式去做

类和对象

  • 类:一个抽象的概念:即生活中“类别”

    • 类中的所有的变量称为属性

    • 类中的函数称为方法

  • 对象:类的具体实例,属于某个类别

狗的属性:  # 狗的特征
    有毛
    有尾巴
    
    
狗的方法:  # 狗会做什么
    吃饭
    看家
    会跑
    ……

类的定义

定义一个函数

def 函数名(形参):
    函数体
函数名(实参)

定义一个类

class 类名:
    类代码(属性,行为)

类名的定义:使用大驼峰命名,(所有单词首字母大写)

定义类之后没有实例对象:执行代码,类中代码执行

定义在类中的变量称为属性,定义的函数称为方法

class People:
    # 类属性 (类属性是所有对象共有的属性)
    name = "jk"
    age = 18

# 通过类实例化对象jk ,类实例赋值给jk ,变量名jk 就是一个对象
# 类一个实例,一个对象
jk = People()
java = People()
# print(jk)  # <__main__.People object at 0x000001EB56CDAD88>


# 对象访问类的属性
# 对象名称.属性名
# print(jk.name)
# print(jk.age)
# print(java.name)


# 修改属性  自身的属性
jk.name = "你好"
print(jk.name)

# 修改类的属性
People.name = "小白"
print(jk.name)
print(java.name)

# 添加属性 自己对象本身
java.height = 1.8
print(java.height)

# 查看属性
print(People.__dict__)

实例成员

__init__初始化方法

  • init 初始化方法,实例化方法, 魔法方法,构造方法
  • 该方法在初始化对象的会被调用,通常情况用于设计对象的属性
  • 该方法在实例化对象时,自动调用,不需要手动调用

self

类中的每个方法,在创建的时候都有这个参数self

self:表示对象本身

实例化属性

class A:
    def __init__(self, name, age):
        # 实例对象自己
        self.name = name
        self.age = age

a = A("jk", 18)
print(a.name)

实例化方法

class A:
    def __init__(self, name, age):
        # 实例对象自己
        self.name = name
        self.age = age

    # 实例化方法
    def desc_info(self):
        print(f'我的名字{self.name},我的年龄:{self.age}')


a = A("jk", 18)
print(a.name)
a.desc_info()