面向对象
- 面向对象(OOP)编程的思想主要针对大型软件设计师
- 面向对象编程使用程序的扩展性更强、可读性更好
- 面型对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据方式更加接近人的思维,大大提高了编程效率
类
- 含义:用来描述具有相同属性和方法的对象的集合。
- 类定义了集合中每个对象所共有的属性和方法。
- 对象是类的实例,类称为class,对象称为object ,instance(实例)
- 即某个类的对象 与 某个类的实例 意思一样
属性和方法
- 通过类定义数据类型的属性(数据)和方法(行为),对象是类的具体实体一般称为“类的实例”
- 方法代码是共享的,属性数据是不共享的
- Python中“一切皆对象”,类也称为“类”对象,类的实例也称为“实例对象”
实例属性
- 实例属性是从属于实例对象的属性,也称为“实例变量”
- 使用
- 实例属性一般在__init__()方法中通过代码定义
self.实例属性 = 初始值
- 在本类的其他实例方法中也是通过self进行访问
self.实例属性名
- 创建实例对象后,通过实例对象访问
obj01 = 类名() # 创建和初始化对象,调用__init__()初始化属性 obj01.实例属性名 = 值 # 可以给已有属性赋值,也可以新加属性
- 实例属性一般在__init__()方法中通过代码定义
- 示例
class Student: def __init__(self,name,score): self.name = name # 新增name属性 self.score = score # 新增score属性 def say_score(self): self.age = 12 # 怎加age属性,一般新增属性放在构造函数里面 # 别的方法里面传递self参数,所以可以使用self属性 print("{0}的分数是{1}".format(self.name,self.score)) s1 = Student('lily',100) s1.say_score() # 调用say_score方法 print(s1.name,s1.score,s1.age) s2 = Student('lisa',99) s2.address = '北京' # 只有s2有address属性 print(s2.name,s2.score,s2.address) # 不能使用age属性,只有调用say_score方法才会增加age属性
实例方法
- 实例方法是从属于实例对象的方法
- 实例方法的定义格式
def 方法名(self[,形参列表]): 函数体
- 方法