Python编程入门02

第五章 模块,类和方法

模块

Python下用模块来组织函数的方式非常简单有效,任何带有Python代码的文件都可以当作同名的模块文件来使用。

使用模块

>>> import random
>>> random.randint(1,6)
2

首先要告诉Python,将要通过import命令来使用random模块。在Python安装时,文件random.py包含了randint函数和其他的一些函数。

但是不同的库当中会有很多重名的函数,为了防止运行出错,我们往往会模块名.函数名,但是这样有时会很麻烦,可以有些小技巧如:

>>> import random as r
>>> r.randint(1,6)
2

这样就给模块取了一个新的名字,不过这个名字只能在这个程序内用。这样就可以用r来代替random了

如果担心随便取新名字会造成程序看起来很混乱,可以采用以下方法

>>> from random import randint
>>> randint(1,6)
4

也可以采用以下方法,*代表所有函数

>>> from random import*
>>> randint(1,6)
2

 面向对象

面向对象与模块有很多共同点。他们都是把相关的项进行整合,从而方便管理和寻找。

例如:

'abc'.upper( )

 就是在高速字符串’abc‘需要它变成大写。在面向对象里,abc是内建类str的实例,upper是类str的方法。

此外还可以通过代码来获得一个对象的类型

>>> 'abc'.__class__
<class 'str'>

 定义类

class ScaleConverter
def _init_(self,units_from,units_to,factor):
    self.units_from=units_from
    self.units_to=units_to
    self.factor=factor
def description(self):
    return 'Convert'+self.units_from+'to'+self.units_to

def convert(self,value):
    return value*self.factor

c1=ScaleConverter('inches','mm',25)
print('c1.description( ))
print('converting 2 inches')
print(str(c1.convert(2))+c1.units_to)

第一行表示定义这个类的名字为ScaleConverter的类。结尾处的:表示后面的项直到缩进重新回到最左边之前,都是类定义的一部分。

ScaleConverter中有3个函数定义。这些函数都属于类,除非通过类实例化,否则他们是不能用的。这种属于类的函数叫做方法。

当Python给类创建了一个新的实例之后,就被称为_init_方法。_init_所有的参数的数量取决于类实例创建时所提供的参数数量


继承

继承在类里的用法,就是给已存在的类在创建一个版本,而且,继续使用父类里的变量和方法,只是添加或覆盖了几个代码。

class ScaleAndOffsetConberter(ScaleConverter):
def _int_(self,units_from,units_to,factor,offset):
ScaleConberter._init_(self,units_from,units_to,factor) self.offset=offset

def convert(self,value):
return value*self.factor+self.offset

注意ScaleAndOffsetConberter后面紧跟着ScaleConverter,这个就是如何区别类中父类的方法。

对于ScaleConverter的新子类来说,_init_方法首先要请求父类的_init_方法,之后才可以定义新变量offset。

而convert方法将会覆盖父类中的convert方法,因为需要给这种换算器里增加一个offset。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值