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 动态绑定属性和方法


一、两大编程思想

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

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

二、类和对象的创建

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)) #
print(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方法

 持续更新中......

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

你可能感兴趣的:(Python学习,python,开发语言,经验分享,学习,pycharm)