目录
一、面向过程和面向对象
1、面向过程
2、面向对象
二、类
三、类对象与类属性
1、类对象
2、类属性
四、类方法与静态方法
1、类方法
2、静态方法
一、面向过程和面向对象
1、面向过程
- 是一种以过程为中心的编程思想,强调事件的流程和顺序。
- 思想:需要实现一个功能的时候,看重的是开发的过程和步骤,每一个步骤都需要自己亲力亲为。
- 例如:吃饭。需要买菜、洗菜、切菜、煮饭、炒菜...
- 程序=算法+数据
2、面向对象
- 是一种以对象为中心的编程思想,强调事件的角色和主体。
- 思想:需要实现一个功能的时候,看重的并不是过程和步骤,而是关心的是对象,对象能做什么。
- 例如:吃饭。找饭店,饭店提供饭菜,我们不需要关心煮饭做菜的过程。
- 程序=对象+消息
二、类
- 类是多个类似事物组成的群体的统称,能够帮助我们快速理解和判断事物的性质。可以理解为类别,如人类、鸟类、植物类等。
- 数据类型也是一种类,不同的数据类型属于不同的类。例如:
- 创建类的语法:
-
class Student: # Student为类名,由一个或多个单词组成,每个单词的首字母大写,其余小写 pass # 空语句,为了保持程序结构的完整性
-
- Python中一切皆对象,那Student类是对象吗? 内存有开空间吗?
- 运行发现Student类是有开辟空间的,并且也是一个对象。
- 类的组成:
- 类属性、实例方法、静态方法、类方法。
- 【注】在类之内定义的函数称为方法。
- 创建一个类
-
class Student: native_place='吉林' # 类属性,直接写在类中的变量 # 初始化方法 def __init__(self,name,age): self.name=name # self.name,self.age为实例属性 self.age=age # 实例方法 def info(self) : print('我的名字叫:',self.name,'年龄是:',self.age) # 静态方法 @staticmethod def sm(): print('静态方法') # 类方法 @classmethod def cm(cls): print('类方法')
-
三、类对象与类属性
1、类对象
- 对象是一个类下的具体内容,例如:100、99、520都是int类下包含的相似的不同个例。
- python中一切都是对象,例如:字符串对象、整数对象、字典对象等。
- 对象的创建又称为类的实例化。
- 创建对象的语法:
-
stu=Student('Jack',20) # 实例名=类名(实例属性值)
-
- 类和实例的关系:
- 有了实例,就可以调用类中的内容了。
-
#创建Student类的实例对象 stu=Student('Jack',20) print(stu.name) # 实例属性 print(stu.age) # 实例属性 stu.info() # 实例方法 Student.info(stu) # 与上条代码功能相同,都是调用info方法。传入的stu实际上就是self
- 运行结果:
-
2、类属性
- 类中方法外的变量称为类属性,被该类的所有对象所共享。
- 使用方式:
-
# 类属性的使用方法 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) # 天津
-
四、类方法与静态方法
1、类方法
- 使用@classmethod修饰的方法称为类方法,需要传入cls。可以使用类名直接访问,也可以使用对象进行访问。
-
@classmethod def cm(cls): print('类方法')
-
- 使用方式:
-
stu=Student("张三",20) stu.cm() # 类方法 Student.cm() # 类方法
-
2、静态方法
- 使用@staticmethod修饰的方法称为静态方法,可以使用类名直接访问,也可以使用对象进行访问。
-
@staticmethod def sm(): print('静态方法')
-
- 使用方式:
-
stu=Student("张三",20) stu.sm() # 静态方法 Student.sm() # 静态方法
-