- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Python培训——面向对象;1、类与对象定义
2、类与对象特点
3、类的构造函数
4、类与对象检查
5、对象高级主题;1类与对象定义;类与对象定义;类与对象示例;类和对象是面向对象编程的两个主要方面,类创建一个新类型,而对象是这个类的实例。这类似于上面一个类Student(),而bart是类Student的一个实例,也就是类的一个对象(实例)。
类的组成元素:
关键字(类):class
类的名字:Student
类的方法:print_score(self)
类的属性:name、age
类的初始化方法:__init__;类与对象格式
类的组成:;对象定义;2类与对象特点;与类和对象的名称空间绑定的普通变量,即这些名称只在这些类与对象的前提下有效。
类名.类变量(使用对象名.类变量也可访问);
对象名.对象变量。
命名空间定义的位置:
类特性:紧跟在类定义之后;
对象特性:在__init__中使用self.xxx=定义。
例子:;类与对象方法
类的方法与普通的函数只有一个特别的区别:类的方法必须有一个额外的第一个参数名称self,但是在调用这个方法的时候你不必为这个参数赋值,Python会提供这个值,这个特别的变量指的是对象本身,按照惯例它的名称就是在类定义中常见的self这个变量名。
可以是任意一个变量名,但最好遵循通用的规则;
Self这个变量名具有一定的魔法,在具体的对象中它有特定的意义。
;Self参数的工作原理:假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1,arg2)的时候,这会由Python自动转为MyClass.method(MyObject,arg1,arg2),这就是self的使用原理。
如果你有一个不需要参数的方法,你还是得给这个方法定义一个带有self参数。
类与对象方法的使用:调用方法同普通函数一致,忽略self参数。
对象名.方法名(参数…);classStudent(object):
def__init__(self,name,score): self.name=name
self.score=score
defprint_score(self):
print(%s:%s%(self.name,self.score));类中对象的方法:
__new__析构函数;
__init__构造函数;
__str__显示return的对象;
__del__析构函数;
__len__,__getitem__,__setitem__,__delitem__……等类方法
__privatename私有类的变量名;
@decorators装饰器;
__iter__迭代器;
……;类与对象继承
Inheritance:以普通类为基础建立专门的类对象;如果已经有一个基类,想再建立一个新类,新类中要添加几种新方法,而又要用原来基类的一些方法,这个时候新类就要继承基类的方法,而又有新的方法,这就是继承;继承的方法就是在新类定义中添加一个基类作为参数。
例如:;类与对象多态
Polymorphism:术语多态来自于希腊语,多态意味着就算不知道变量所引用的对象类型是什么,还是能对它进行操作,而且它也能根据(或者类)对象的类型的不同而表现出不同的行为。
例如:;类与对象封装
Encapsulation:封装是对外部隐藏对象内部细节的原则,看起来有点像多态,但封装并不等于多态;多态可以让用户对于不知道是什么类或者对象类型的对象进行方法调用;而封装是可以不用关心对象是如何构建的而直接进行使用。
示例:;3类的构造函数;;4类与对象的检查;5对象高级主题;成员访问
利用__getitem__,__setitem__,等方法可以实现简单序列。;迭代器
定义一个类;classclass_name:
定义类中有二个方法:__next__(self)
__iter__(self)
如普通类一样使用迭代器,重复做一件事很多次。;defflatten(nested):
文档评论(0)