程序设计基础(Python语言)面向对象程序设计_第1页
程序设计基础(Python语言)面向对象程序设计_第2页
程序设计基础(Python语言)面向对象程序设计_第3页
程序设计基础(Python语言)面向对象程序设计_第4页
程序设计基础(Python语言)面向对象程序设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计面向对象(ObjectOriented)是一种软件开发方法,一种编程范式。面向对象的思想是从更高的层次来进行系统建模,把构成问题的各个事务分解成由相关的数据和方法组织的对象。03继承和多态0102类的定义、创建和使用属性与方法面向对象程序设计类的创建Part01类的使用Part02类的创建和使用class

MyObject:

'define

MyObject

class'

passo

=

MyObject()一个简单的类class

AddressBook:

'define

Address

Book

class'

def

__init__(self,

name,

phone)

->

None:

=

name

self.phone

=

phone

print("create

AddressBook

instance

with

%s"%)

def

update_phone(self,

phone):

self.phone

=

phone

print("AddressBook

{}'s

phone

has

updated."%(,))创建一个类(类的定义)__init__()函数被被称为类的构造器。即:类在实例化操作期间被调用的特殊方法。

类的构造器所有的类的方法都至少拥有一个参数,即self。self参数代表类的实例。通过实例调用其方法时,解释器将隐含传递self参数,无需用户显式传递。

self参数>>>ab1=AddressBook('张三',)createAddressBookinstancewith张三>>>ab2=AddressBook('李四',)createAddressBookinstancewith李四类的使用实例化的参数必须和__init__()函数的参数一致。实例化的参数>>>'张三'>>>ab1.phone实例的属性的使用>>>ab1.update_phone()AddressBook张三'sphonehasupdatedwit例的方法的使用03继承和多态0102类的定义、创建和使用属性与方法面向对象程序设计属性Part01方法Part02属性与方法类与实例Part03>>>classA:pass>>>a=A()>>>a.x=10>>>a.y=23>>>a.x+a.y33Python属性的动态性Python允许实例在创建以后,动态的添加、删除其属性和方法。>>>a2=A()>>>a2.foo=100>>>vars(a2){'foo':100}>>>vars(a){'x':10,'y':23}Python属性的查看——varsPython提供了内置函数vars(),可以查看实例的属性。属性Part01方法Part02属性与方法类与实例Part03classMyObject:'defineMyObjectclass'defmy_func(self): #方法的定义pass>>>o=MyObject()>>>o.my_func() #方法的调用方法方法的是在类的定义中定义的函数。>>>o.f=lambdax:x**2>>>o.f(20)400Python方法的动态性Python的方法也具有动态性,可以动态添加。属性Part01方法Part02属性与方法类与实例Part03classMyClass:'defineMyClassclass'version='1.0'defshow_version(self):

print(MyClass.version)>>>MyClass.version'1.0'类属性类属性是只与类相关而不与某个特定的实例相关的数据。>>>c1=MyClass()>>>c1.version'1.0'>>>MyClass.version='1.1'>>>c1.version'1.1'类属性>>>MyClass.new_val=100>>>c1.new_val100类属性的动态性>>>c1.version=2.2>>>c1.version #c1实例的新的属性2.2>>>MyClass.version #类属性'1.1'类属性与实例属性classMyClass:'defineMyClassclass'version='1.0'defshow_version(self): #实例的方法。必须创建一个实例

print(MyClass.version)类方法类方法是只与类相关而不与某个特定的实例相关的函数。classMyClass:'defineMyClassclass'version='1.0'

@classmethoddefshow_version(cls): #类方法。必须创建一个实例

print(MyClass.version)>>>MyClass.show_version()1.0类方法03继承和多态0102类的定义、创建和使用属性与方法面向对象程序设计>>>classC(MyClass):pass>>>C.version #子类C自动具有类属性version'1.0'>>>C.show_version()

#子类C自动具有类方法show_version1.0继承继承就是子类继承父类的属性和方法。classP:deffoo(self):

print("ThisisP-foo().")classC(P):deffoo(self):

print("ThisisC-foo().")多态多态是指子类与父类具有相同的方法,却是不同的实现。作业1.创建一个类Point,它表示某个点的X坐标和Y坐标的有序数值对。X和Y的值在实例化时传入构造器。如果缺失某个坐标值,则自动设置为0。重写__st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论