python——面向对象

一、编程范式

1.1 概念理解

‘编程范式’是一种编程思想的总称,他是在写程序的时候采用的基本方法和规范。

常见的编程范式有:面向对象、面向过程、函数式、逻辑式、面向切面等等。

选择合适的编程范式可以提高代码的可读性、可维护性、可扩展性,是程序员必备的技能。

1.2 面向过程

面向过程:是一种以过程为核心的编程,强调分析问题的步骤,将这些步骤转换为可执行的

函数或者方法。通常使用顺序结构、选择结构、循环结构。

特点:

  1. 注重步骤与过程:它更关注于任务的实现过程,而不是职责分工。

  2. 代码结构清晰:当需求复杂时,代码可能会变得复杂,但结构通常比较清晰。

  3. 开发难度较大:对于复杂项目的开发,没有固定的套路,因此开发难度相对较高。

1.3 面向对象

面向对象:是一种以对象为核心的编程,对象是由属性和方法组成的。编程的时候首先思考如何是

设计这个事务。

面向对象虽然可以帮助我们在宏观上把握、从整体分析。但是在具体的实现操作,是不是还需要面

向过程。选择合适编程范式,编程范式之间他们是相辅相成。

二、类和对象

2.1 类

类定义:一个抽象的概念,就是生活中的类别。类中所有变量叫做属性,类中的函数通常叫方法

类的命名:遵从大驼峰命名法(StudentWork)

语法:

class 类名():

        类代码(属性,行为)

# 创建一个类 Person , 当类没有对象的时候,运行时类中代码会执行
class Person():
    name = '张三'  # 类属性
    print('这是一个类 Person')


print(Person.name)  # 可以打印类中属性, 类名.属性名

2.2 对象

定义:类的具体实例,对象是指某一个客观存在的事务,它具有能识别他唯一性的属性和行为。假设类是人类,那么对象就可以具体到张三这个人。

语法:

        对象名 = 类名()

# 创建一个类 Person
class Person():
    # 类中的变量称为类属性
    name = '张三'  # 类属性
    age = 26
    # 类中的函数称为类方法
    def work(self):  # 类方法
        print('我在工作')

    def eat(self):
        print('我在干饭')


p1 = Person()
print(f'我的名字叫{p1.name}')  # 我的名字叫张三
print(f'我今年{p1.age}岁')  # 我今年26岁
p1.work()  # 我在工作
p1.eat()  # 我在干饭
print(p1) # <__main__.Person object at 0x000001CA7BB37700>

2.2.1 修改属性 

类属性是所有对象共有的属性,在创建对象的时候,类共享给所有对象,对象无法修改或者删除类属性,对象可以修改自身的属性。

class Person():
    # 类中的变量称为类属性
    name = '张三'  # 类属性
    age = 26


p1 = Person()
p2 = Person()
# 对象可以修改对象自身的属性
p1.name = '周星星'
print(f'我的名字叫{p1.name}')  # 我的名字叫周星星

print(Person.name)  # 张三,类属性不受对象属性修改的影响
print(f'我的名字叫{p2.name}') #  我的名字叫张三

2.2.2 __init__ 初始化方法

init()类构造方法:在创建类时,我们可以手动添加一个 init()方法,该方法是一个特殊的类实例方法,称为构造方法。构造方法用于创建对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它。

简单来说,以前函数调用的时候,可以传参,这个 __init__()就是可以实现在实例化对象的时候,直接传参给对象。

语法:

class Employee:
    def __init__(self, name, age):
        # self.name和self.age就是对象属性
        self.name = name
        self.age = age


e = Employee('李白', 200)
print(e.name)  # 李白

注意:如果__init__方法有参数的话,需要手动传递参数。相当于定义函数时有形参,调用函数时必须传递实参。

2.2.3 self

self 代表类的实例对象。

class Test:
    # self就代表对象
    def put(self):
        print(self)

t = Test()
print(t)  # <__main__.Test object at 0x000001C9468D7700>
t.put()  # <__main__.Test object at 0x000001C9468D7700>

注意:self不是python的关键字,我们可以随便改,也是可以正常执行的。但是建议大家不要改,这是一个规范。  

2.3 常用方法

类名.__dict__查看类属性
类名.__doc__类的文档字符串
类名.__name__获取类名
类名.__bases__获取这个类的所有父类
对象.__class__获取对象的类
对象.__dict__查看对象的属性

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值