Python中的类

本文探讨了编程中的面向过程与面向对象两种思维模式,解释了它们在处理简单与复杂问题上的区别,强调了类、对象、类属性与方法的概念,并展示了如何实例化和调用。重点在于两者互补及在实际项目中的运用策略。

编程思想

  • 面向过程:事物比较简单,可以用线性的思维去解决

  • 面向对象:事物比较复杂,使用简单的线性思维无法解决

  • 共同点:都是解决实际问题的一种思维方式

  • 注意:

二者相辅相成,并不是对立的
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理

类与对象

由多个类似事物组成的群体的统称。能够快速理解和判断事物的性质

  • 数据类型

不同的数据类型属于不同的类

使用内置函数查看数据类型

对象

100、99、520都是int类之下包含的相似的不同个例,这个个例的专业术语称为实例或对象

Python中一切皆对象:dict、tuple、520、int、‘hello’…

类的创建

创建类的语法
class Student:
    pass

Student为类的名称(类名)有一个或多个单词组成,每个单词的首字母大写,其余小写

  • Python当中一切皆对象
print(id(Student), type(Student), Student)

1691786934400 <class 'type'> <class '__main__.Student'>
类的组成
  • 类属性
  • 实例方法
  • 静态方法
  • 类方法
# 类的组成
class Student:
    native_place = '甘肃'  # 直接写在类里的变量称为类属性

    def __init__(self, name, age):
        self.name = name  # self.name称为实例属性,将局部变量name的值赋给了实例属性
        self.age = age

    def eat(self):  # 实例方法  # 在类之外定义的称为函数,在类之内定义的称为方法
        print('学生在吃饭...')

    @staticmethod  # 静态方法
    def method():  # 不能存在self
        print('使用了@staticmethod进行修饰,所以是静态方法')

    @classmethod  # 类方法
    def cm(cls):
        print('使用了@classmethod进行修饰,因此是类方法')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k7BwRuYJ-1663236025267)(C:\Users\43160\Pictures\屏幕截图 2022-09-15 173032.png)]

对象的创建

  • 对象的创建又称为类的实例化
  • 语法:

实例名 = 类名()

  • 例子:

stu.Student()

# 类的组成
class Student:
    native_place = '甘肃'  # 直接写在类里的变量称为类属性

    def __init__(self, name, age):
        self.name = name  # self.name称为实例属性,将局部变量name的值赋给了实例属性
        self.age = age

    def eat(self):  # 实例方法  # 在类之外定义的称为函数,在类之内定义的称为方法
        print('学生在吃饭...')

    @staticmethod  # 静态方法
    def method():  # 不能存在self
        print('使用了@staticmethod进行修饰,所以是静态方法')

    @classmethod  # 类方法
    def cm(cls):
        print('使用了@classmethod进行修饰,因此是类方法')

# 创建Student类的对象
stu1 = Student('张三', 20)  # 根据类对象所创建的实例对象
print(id(stu1), stu1, type(stu1))
stu1.eat()  # 对象名.方法名
print(stu1.name, stu1.age)

Student.eat(stu1)  # 类名.方法名(类的对象)-->实际上就是方法定义处的self;与stu1.eat()代码功能相同,都是调用Student中的eat方法
nt(stu1.name, stu1.age)

Student.eat(stu1)  # 类名.方法名(类的对象)-->实际上就是方法定义处的self;与stu1.eat()代码功能相同,都是调用Student中的eat方法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蛰伏GR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值