python基础(12):类和两大编程思想:面向过程&面向对象(附有代码)

✅作者简介:大家好我是Xlong,一枚正在学习COMSOL、Python的工科研究僧
📃个人主页: Xlong的个人博客主页
🔥系列专栏:Python学习
💖如果觉得博主的文章还不错的话,请👍支持一下博主哦🤞

本篇简介

        在上一章《python基础(11):Bug和异常处理机制》中我们详细介绍了关于Bug的种类以及异常处理机制的种种。这一篇文章我们主要来学习python中的概念以及两大编程思想:面向过程和面向对象

目录

本篇简介

一、两大编程思想

二、类和对象的创建

2.1 类

2.2 数据类型

2.3 对象

2.4 类的组成

三、类对象与类属性、类方法、静态方法

3.1 类属性

3.2 类方法

3.3 静态方法

3.4 动态绑定属性和方法


一、两大编程思想

 详细内容请移步博文《【计算机基础知识】三大编程思想

二、类和对象的创建

2.1 类

        类别,分门别类,物以类聚,人类,鸟类,植物类

2.2 数据类型

(1)不同的数据类型属于不同的类

(2)使用内置函数查看数据类型

2.3 对象

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

class Student: #Student为类名(由一个或多个单词组成,每个单词的首字母大写,其余的小写)
    pass
#python中一切皆对象,Student是对象吗?内存有空间吗?
print(id(Student)) #2115894098800
print(type(Student)) #<class 'type'>
print(Student) #<class '__main__.Student'>

2.4 类的组成

        类属性、实例方法、静态方法、类方法

class Student: #Student为类名(由一个或多个单词组成,每个单词的首字母大写,其余的小写)
    native_place = '吉林'  #直接写在类里的变量称为类属性
    def __init__(self,name,age):
        self.name = name #self,name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
        self.age = age
    #实例方法
    def eat(self):
        print('学生在吃饭。。。')
    #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法')
    #类方法
    @classmethod
    def cm(cls):
        print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')

#创建Student类的对象
stu1 = Student('张三',20)
stu1.eat() #对象名.方法名
print(stu1.name)
print(stu1.age)

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

三、类对象与类属性、类方法、静态方法

3.1 类属性

        类中方法外的变量称为类属性,被该类的所有对象所共享

3.2 类方法

        使用@classmethod修饰的方法,使用类名直接访问的方法

3.3 静态方法

        使用@staticmethod修饰的方法,使用类名直接访问的方法

class Student: #Student为类名(由一个或多个单词组成,每个单词的首字母大写,其余的小写)
    native_place = '吉林'  #直接写在类里的变量称为类属性
    def __init__(self,name,age):
        self.name = name #self,name称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
        self.age = age
    #实例方法
    def eat(self):
        print('学生在吃饭。。。')
    #静态方法
    @staticmethod
    def method():
        print('我使用了staticmethod进行修饰,所以我是静态方法')
    #类方法
    @classmethod
    def cm(cls):
        print('我是类方法,因为我使用了classmethod进行修饰')

#类属性的使用方式
print(Student.native_place)
stu1 = Student('张三',20)
stu2 = Student('李四',30)
print(stu1.native_place)
print(stu2.native_place)
Student.native_place = '天津'
print(stu1.native_place)
print(stu2.native_place)
print('--------类方法的使用方式----------')
Student.cm()
print('--------静态方法的使用方式----------')
Student.method()

3.4 动态绑定属性和方法

(1)Python是动态语言,在创建对象之后,可以动态地绑定属性和方法

class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def eat(self):
        print(self.name+'在吃饭')

stu1 = Student('张三',20)
stu2 = Student('李四',30)
print(id(stu1))
print(id(stu2))
print('--------为stu1去动态的绑定性别属性------------')
stu1.gender = '女' #创建对象之后单独为stu1绑定了性别属性,而没有为stu2绑定性别属性
print(stu1.name,stu1.age,stu1.gender)
print(stu2.name,stu2.age)

print('----------------------------------')
stu1.eat()
stu2.eat()

def show():
    print('定义在类之外的,称函数')
stu1.show = show
stu1.show()
#stu2.show() #因为stu2没有绑定show方法

 持续更新中......

原创不易,各位看官请随手点个赞和关注哦,感谢!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Xlong~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值