python 对象和类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 对象和类相关的知识,希望对你有一定的参考价值。
对象:
在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 撒(): pass
class cat(animal):
def 叫():
print(’miao‘)
class dog(animal):
def 叫():
print(’wang‘)
所以,对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。
(3)多态
Python 用不着多态。略
以上是关于python 对象和类的主要内容,如果未能解决你的问题,请参考以下文章