目录
1、编程的两大思想,面向过程 VS 面向对象
1)面向过程和面向对象的区别:
- 面向过程,事物比较简单,可以用线性的思维去解决;
- 面向对象,事物比较复杂,使用简单的线性思维无法解决;
2)面向过程和面向对象的共同点:
- 都是解决实际问题的一种思维方式;
3)二者之间的关系:
- 解决复杂问题,通过面向对象方式,便于从宏观把握事物之间复杂的关系,方便分析整个系统;
- 具体到微观操作,仍然使用面向过程方式来处理;
- 如:想吃西红柿炒蛋,自己购买材料去做是面向过程;外卖下单购买,厨房接单制作,是面向对象;
2、类与对象
1)类
- 类别,多个类似事物组成的群体的统称,如人类,鸟类,动物类等;
2)数据类型
- 不同的数据类型属于不同的类;
- 使用内置函数查看数据类型;
# 不同的数据类型属于不同的类
print(type(100)) # <class 'int'>
print(type(50)) # <class 'int'>
print(type(10)) # <class 'int'>
3)对象
- 100,50,10都是int类之下包含的相似的不同个例,这个个例称为实例或对象;
- python中,一切皆对象;如字符串对象‘hello’,整数对象520,字典对象{'key':value},元组对象(10,20),列表对象[10,20]等;
3、类的创建
语法:
class Student:
pass
1)创建类
- Student为类的名称,由一个或多个单词组成,每个单词的首字母大写,其余小写;
- 类也占用内存空间,也有类型,也有value值;
# 创建类对象
class Student:
pass
print(id(Student)) # 占用了内存空间,1972126470016
print(type(Student)) # class类型,<class 'type'>
print(Student) # value值是<class '__main__.Student'>
2)类的组成
- 类属性,直接写在类里面的变量;
- 实例方法,在类外定义的是函数,在类内定义的是方法;
- 静态方法
- 类方法
创建学生类
# 创建学生类
class Student:
native_place = '吉林' # 类属性
def __init__(self, name, age): # 初始化方法
self.name = name # self.name是实例属性
self.age = age # 将局部变量age的值,赋值给self.age实例属性
# 实例方法
def info(self): # 传递的是类的对象self
print('我的名字叫:', self.name, '年龄是:', self.age)
# 类方法
@classmethod
def cm(cls): # 传递的是class
print('这是类方法')
# 静态方法
@staticmethod
def sm(): # 静态方法不允许传递值
print('这是静态方法')
在类外定义的是函数,在类内定义的是方法
# 类的方法和函数
# 类的方法
class Student:
def eat(self):
print('这是类的方法')
# 函数
def drink():
print('这是函数')