day16-学生管理系统和面向对象

本文探讨了编程思维的转变,从面向过程到函数式编程再到面向对象,重点讲解了类和对象的概念,如何定义和创建类、对象方法与魔法方法,以及实例化和调用。通过实例演示,深入浅出地展示了面向对象编程的魅力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

day 16 学生管理系统和面向对象

1、编程思想的转变

​ 1、面向过程编程(穷人思想)

​ 1)遇到问题马上想到的是解决问题的步骤和方案

​ 2)工具:思路+基础语法

​ 2、函数式编程(小资思想)

​ 1)遇到问题马上想到的是是否已经存在一个函数具备解决问题的条件的能力,如果有直接用,没有就造一个

​ 2)工具:函数

​ 3、面向对象编程(富豪思想)

​ 1)遇到问题马上想到有没有一个对象具备这个功能,如果有就直接用,没有就创建这个对象(创建对象还要看有没有类,没有类就创建类)

​ 2)工具:类和对象

2、类和对象

​ 1、认识类和对象

​ 1)类:类是具有相同功能和相同属性的对象的集合(一类事物的总称),是一个抽象的概念

​ 2)对象:对象就是类的实例(类的具体表达)

​ 2、定义类(创建类)

​ 1)创建类:就是用代码来描述清楚这个类有哪些相同功能(函数)和哪些相同属性(保存数据的变量)的对象的集合

​ 2)语法:

"""
语法:
class 类名:
    类的说明文档
    类的内容(方法和属性)
    
说明:
class       -   关键字;固定写法
类名         -   由程序员自己命名
                要求:是标识符;不能是关键字
                规范:见名知义;驼峰式命名,且首字母大写;不使用系统的函数名、类名和模块名
:           -   固定写法
类的说明文档   -      本质就说多行注释
类的内容      -     由方法和属性组成,方法又分为对象方法、类方法和静态方法;属性分为类属性和对象属性
                   方法就是定义在类中的函数
                   属性就是定义在类中的变量
"""

# student_name      PEP8命名规范
# studentName       驼峰式命名

​ 3、创建对象

​ 1)对象又叫实例

​ 2)语法:

​ 类名()

stu1 = Student()
stu2 = Student()
print(stu1, stu2)
# <__main__.Student object at 0x0000023AA32C5F40> <__main__.Student object at 0x0000023AA32C5940>

3、对象方法

​ 1、方法:定义在类中的函数

​ 2、对象方法

​ 1)怎么定义:将函数之间定义在类中

​ 2)怎么调用:通过 ‘对象.’ 的方式调用

​ 3)特点:自带参数self,在通过对象调用对象方法的时候,参数self不需要传参,系统会自动将当前对象传给self(self是谁调用就指向谁)

​ 3、类方法

​ 1)怎么定义:在定义函数前加装饰器:@classmethod

​ 2)怎么调用:通过 ‘类.’ 的方式调用

​ 3)特点:自带参数cls,在调用的时候cls不用传参,系统会自动将当前类传给cls

​ 4、静态方法

​ 1)怎么定义:在定义函数前加装饰器:@staticmethod

​ 2)怎么调用:通过 ‘类.’ 的方式调用

​ 3)特点:无

class Person:
    """人类"""
    def func1(self):
        print('对象方法',self)

    @classmethod
    def func2(cls):
        print('类方法')

    @classmethod
    def func22(cls):
        print('类方法')

    @staticmethod
    def func3():
        print('静态方法')


# p1就是person的对象
p1 = Person()
p2 = Person()
print('p1:', p1)
print('p2:', p2)

# 通过对象调用方法
p1.func1()

# 通过类调用方法
print('Person:',Person)
Person.func2()

# 通过类调用静态方法
Person.func3()

4、常用的两个魔法方法

​ 1、魔法方法:类中以两个下划线开头且以两个下划线结尾,并且会在特定情况下自动调用的方法就说魔法方法

​ 2、两个常用 魔法方法

"""
1)__init__
在通过类创建对象的时候会被自动调用
创建对象的的时候需不需要参数需要几个参数看这个类的__init__方法处理self以外有没有额外的参数,有几个

2)__repr__
打印类的对象的时候会自动调用类中的__repr__方法,并且获取这个方法的返回值位打印值(打印值必须为字符串)
"""	
class Dog:
    def __init__(self):
        print('__init__')

    def __repr__(self):
        # 打印的是谁,self就指向谁
        return '123'


dog = Dog()
dog2 = Dog()
print('dog的对象', dog)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值