对象:
在python中所有数据都是以对象的形式存在,即‘一切事物皆对象’,对象既包含了数据,也包含了代码。
类:
在Python中有很多用来创建其他标准数据类型的类,例如列表、字典等。如果想在Python中创建属于自己的对象。必须用关键字class来定义一个类。例如
class person(): def __init__(self,name): self.name = name print(‘%s ‘ % self.name)
n1 = person(‘sunlieqi‘)
上面的代码做了以下的工作:
- 查看 person类的定义
- 在内存中创建了一个新的对象;
- 调用兑现的__init__方法,将这个新创建的对象作为self传入,并将另一个参数(‘sunlieqi’)当作name传入
- 返回这个新的对象
- 刚传入的对象写在了内存中,可以直接进行读写打印
类有三个特性
(1)封装
class Foo: def __init__(self, name, age): self.name = name self.age = age obj1 = Foo(‘sunlieqi‘, 18) print obj1.name print obj1.age obj2 = Foo(‘slq‘, 73) print obj2.name print obj2.age
self 是一个形式参数,当执行 obj1 = Foo(‘sunlieqi‘, 18 ) 时,self 等于 obj1
当执行 obj2 = Foo(‘slq‘, 78 ) 时,self 等于 obj2
对于面向对象的封装来说,其实就是使用构造方法将内容封装到 对象 中,然后通过对象直接或者self间接获取被封装的内容。
(2)继承
从已经有存在的类中衍生出新的类,添加或者修改部分功能
class cat: def 吃(): pass def 喝(): pass def 拉(): pass def 撒(): pass def 叫(): print(‘miao’) class dog: def 吃(): pass def 喝(): pass def 拉(): pass def 撒(): pass def 叫(): print(‘wang‘)
在上面知道 猫狗除了叫不一样 都执行的一样的方法 即 吃喝拉撒
我们可以用一个大的类来包括这些
class animal:
def 吃(): pass def 喝(): pass def 拉(): pass def 撒(): passclass cat(animal): def 叫(): print(’miao‘)class dog(animal): def 叫(): print(’wang‘)
所以,对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。
(3)多态
Python 用不着多态。略
时间: 2024-10-06 20:48:09