本文已参与「新人创作礼」活动,一起开启掘金创作之路。
@[toc]
1.概念介绍[了解]
==面向对象和面向过程,是两种编程思想.== 编程思想是指对待同一个问题,解决问题的套路方式.
-
面向过程: 注重的过程,实现的细节.亲力亲为.
- 函数
-
面向对象: 关注的是结果, 偷懒.
- 封装, 继承 和多态(三大技术)
2.类和对象[理解]
类和对象,是面向对象中非常重要的两个概念
- 类
- 类是泛指的,指代多个, 是由对的抽象来的
- 在代码中, 是通过关键字
class定义的
- 对象
- 对象是特指的,指代一个,是具体存在的
- 在代码中, 对象是由类创建的
3.类的组成
- 类名
- 属性: 特性, 变量
- 一个类的属性有很多,值关注需要使用的,没有用到的不用管
- 方法: 行为, 函数
4.类的抽象
- 名词提炼法
- 所见即所得
5.类的定义
随后的代码,使用狗类进行演示说明 类名: Dog(狗类) 属性: 姓名 name 年龄 age .... 方法: 吃 eat() 玩 play() .....
5.1类名遵循大驼峰的命名规范
-
object 是所有的类基类,即最初始的类
-
class 类名(object): 类中的代码
-
PEP8代码规范:类定义的前后,需要两个空行
- 新式类: 直接或者间接继承object的类, 在python3中,所有的类默认继承object类,即python3中所有的类都是新式类
- 旧式类(经典类): 已经过时,不推荐使用
6.创建对象
# 定义类
class Dog(object):
# 在类中定义的函数,称为方法, 函数的所有知识都可以使用
def play(self): # 暂时不管self ,
print('萨摩耶在睡觉......')
# 创建对象 变量 = 类名()
# 定义类
class Dog(object):
# 在类中定义的函数,称为方法, 函数的所有知识都可以使用
def play(self): # 暂时不管self ,
print('萨摩耶在睡觉......')
# 创建对象 变量 = 类名()
dog = Dog() # 创建一个对象,dog
print(id(dog)) # 2378043254528
dog1 = Dog() # 创建一个对象 dog1
print(id(dog1)) # 2378044849840
# 可以使用对象调用类中的方法. 对象.方法名()
dog.play() # 萨摩耶在睡觉......
dog1.play() # 萨摩耶在睡觉......
创建的对象地址值都不一样如dog和dog1的地址就不一样,dog的地址为2378043254528dog1的地址为2378044849840
7.类外部添加和获取对象属性
class Dog(object):
def play(self):
print('萨摩耶在睡觉.....')
# 创建对象
dog = Dog()
dog.play() # 萨摩耶在睡觉.....
# 给对象添加属性 对象.属性名 = 属性值
dog.name = '萨摩耶0' # 给dog对象添加name属性,属性值是 萨摩耶0
dog.age = 1 # 给dog对象添加age属性,属性值是 1
# 获取对象的属性值 对象.属性名
print(dog.name) # 萨摩耶0
print(dog.age) # 1
# 修改属性值 和添加一样,存在就是修改,不存在,就是添加
dog.age = 3 # age 属性已经存在,所以是修改属性值
print(dog.age) # 3
dog1 = Dog() # 新创建一个对象 dog1
dog1.name = '萨摩耶1'
print(dog1.name) # 萨摩耶1