Python学习之旅(十七)
程序员文章站
2022-03-20 20:09:27
Python基础知识(16):面向对象编程(Ⅰ) 类和实例 类是抽象的模板 实例是根据类创建出来的一个个具体的对象,每个对象都拥有相同的方法,但各自的数据可能不同。 类可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去 方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据 ......
python基础知识(16):面向对象编程(ⅰ)
类和实例
类是抽象的模板
实例是根据类创建出来的一个个具体的对象,每个对象都拥有相同的方法,但各自的数据可能不同。
类可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去
方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据
通过关键字“class”定义类,“person”是类名,object
表示该类是从哪个类继承下来的
class person(object): def hello(name): return "hello,%s"% name
根据person
类创建出person的实例,创建实例是通过类名+()实现的
>>> bar=person()>>> bar.hello() 'hello,<__main__.person object at 0x000002106b85c0b8>'
变量bart
指向的就是一个person的实例,后面的0x000002106b85c0b8是内存地址
数据封装
通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节
访问限制
隐藏内部的复杂结构,让内部属性不被外部访问,可以把属性的名称前加上两个下划线__
在python中,实例的变量名如果以__
开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问
继承
定义一个class的时候,可以从某个现有的class继承,新的class称为子类(subclass),而被继承的class称为基类、父类或超类(base class、super class)
class animal(object): def play(self): print('it's show time!') def run(self): print('are you ready?') class dog(animal): def run(self): print('wang wang wang...') class cat(animal): def run(self): print('miao miao miao...')
子类获得了父类的全部功能,同时子类也可以增加自己的方法
一个类可以是一个或多个类的子类
当子类和父类有相同的方法时,在代码运行的时候会调用子类的该方法,父类的那个相同的方法则被覆盖了
多态
多态指“事物有多种形态”,可以对不同的对象使用同样的操作(继承)
上一篇: Python面向对象基础
下一篇: 在'for'循环中获取索引