OOP概述
OOP是一种编程方法,这种编程方式需要使用“对象”来实现
对象的特征:
世间万物皆对象
每个对象都是唯一的
对象具有属性和行为
对象具有状态
对象分为类对象和实例对象两大类(类对象是具有相同属性和行为的实例对象的抽象)
OOP的步骤:
抽象出类对象
抽象出类对象的属性
抽象出类对象的行为
根据类对象创建实例对象
通过实例对象访问属性和方法
定义类对象的语法格式:
class 类名 (object):
#属性与方法
- 类名首字母大写且其余字母小写
- object表示该类对象继承来自python内置的类对象object
初识属性
为了在创建实例对象后对其进行初始化(例如:给实例对象绑定一些属性),可以在类对象中定义一个名为__init__的特殊方法。这样,创建实例对象后就会自动调用特殊方法__init__
class Cat(object):
def _init_(self,breed,name,age,health):
self:breed = breed #品种
self:name =name #昵称
self:age =age #年龄
self:health=health #健康状况
初识类方法
行为(方法)是类中特殊的函数
def run(self):
print("cat is running")
def miao(self):
print("cat is miaoing")
def cat(self):
print("cat is eatting")
根据类对象创建实例对象的语法格式为:
类名([实参])
cat = Cat("波斯猫","喵喵",1,"很好")
print(cat.breed)
print(cat.name)
print(cat.age)
print(cat.health)
cat.run()
cat.miao()
cat.eat()
实例对象属性
- 实例属性指实例对象所绑定的属性
- 绑定实例属性的方法有两种:
* 在类对象的内部
语法格式:self.属性名 = 属性值
* 在类对象的外部
语法格式:实例对象.属性名 = 属性值 - 访问实例属性的方法:
* 在类对象的内部(方法中)
语法格式:self.属性名
* 在类对象外部
语法格式:实例对象.属性名
(之所以添加前缀“self”或“实例对象”,是为了表明实例属性被哪个实例对象所绑定)
class MyClass(object):
def __init__(self):
#在类对象的内部(方法中)绑定实例属性
self.ia1 =18
def do_sth1(self):
#在类对象的内部(方法中)访问实例属性
print(self.ia1)
def do_sth2(self):
print(self.ia2)
def do_another(self):
#在类对象的内部绑定实例属性
self.ia2=56
def do_sth3(self):
print(self.ia3)
mc = MyClass()
mc.do_sth1()
同一个类对象的不同实例对象所绑定的实例属性是相互独立的。也就是说,给一个实例对象所绑定的实例属性,对于另外一个实例对象是不起作用的
实例对象_ dict _
可获得该实例对象所绑定的所有属性及其值的字典
类对象属性
类属性指的是类对象所绑定的属性
绑定类属性(给类对象绑定属性)的方式有两种:
- 在类对象的内部(方法外)
语法格式:属性名 =属性值 - 在类对象的外部
语法格式:类对象.属性名=属性值
如果指定名称的类属性已经存在,则是对类属性进行修改