✅作者简介:大家好我是Xlong,一枚正在学习COMSOL、Python的工科研究僧
📃个人主页: Xlong的个人博客主页
🔥系列专栏:Python学习
💖如果觉得博主的文章还不错的话,请👍支持一下博主哦🤞
本篇简介
在上一章《python基础(11):Bug和异常处理机制》中我们详细介绍了关于Bug的种类以及异常处理机制的种种。这一篇文章我们主要来学习python中类的概念以及两大编程思想:面向过程和面向对象。
目录
一、两大编程思想
详细内容请移步博文《【计算机基础知识】三大编程思想》
二、类和对象的创建
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方法
持续更新中......
原创不易,各位看官请随手点个赞和关注哦,感谢!!!