python类描述

类的说明

类是面对对象编程最重要的工具(Object-oriented programming),对象(object)是类(class)的一个实例(instance),例如一个圆,半径可能是5,可能是15,具体半径的圆就是实例化后的对象,圆就一个类。一个矩形,长和宽分别是5,3,矩形是类,指定了矩形的属性(attribute)就是一个对象。同样一个类还可以包含对应的方法(method),圆可以是获取圆的周长或者面积,矩形同样也是。
由此可知,一个类通常由数据域(data fields)和方法(method)组成,当然还包括构造函数(init)

python类的私有变量通过变量名前加上两个下划线(__),私有变量在类外不能直接更改或者访问,需要通过set和get函数来访修改及访问

下面介绍如何描述一个类

UML描述类

采用UML Class Diagram描述一个类

Circle
radius:float
Circle(radius = 1:float)
getArea():float
getPerimeter():float
setRadius(radius:float):None

采用UML描述一个类,主要是三个部分:

第一部分

类名(circle)

第二部分

数据域(data fields),包括类数据名称和数据类型(数据名称:数据类型)

第三部分

是方法(method)。包括构造函数(constructor)和一般的方法(method)
构造函数的描述:
类名(参数名称=默认值:参数类型)
一般方法的描述:
方法名称(参数名称:参数类型)

UML示例2

TV
channel:int
volumeLevel:int
on:bool
TV()
turnOn():None
turnOff():None
getChannel():int
setChannle(channel:int):None
getVolume():int
setVolume(volumeLevel:int):None
channelUp():None
channelDown():None
volumeUp():None
volumeDown:None

关于self

类内的变量需要用self.para表示,这个变量的作用域是整个类,例如圆的半径,用self.radius表示
构造函数(初始化函数)self后面的变量是构造函数的参数,用来初始化类内变量的。通常在构造类的时候作为参数传递初始化对象
如果初始化对象不需要参数,例如下面的tv,就不用传参数。

类定义示例代码

class TV:
    def __init__(self):
        self.channel = 1
        self.volumeLevel = 1
        self.on = False

    def turnOn(self):
        self.on = True
            
    def turnOff(self):
        self.on = False
            
    def getChannel(self):
        return self.channel
    
    def setChannel(self, channel):
        if self.on and 1 <= channel <= 120:
            self.channel = channel
        
    def getVolume(self):
        return self.volumeLevel
    
    def setVolumeLevel(self, volumeLevel):
        if self.on and 1 <= volumeLevel <= 7:
            self.volumeLevel = volumeLevel
        
    def channelUp(self):
        if self.on and self.channel < 120:
            self.channel += 1
            
    def channelDown(self):
        if self.on and self.channel > 1:
            self.channel -= 1
            
    def volumeLevelUp(self):
        if self.on and self.volumeLevel < 7:
            self.volumeLevel += 1
            
    def volumeLevelDown(self):
        if self.on and self.volumeLevel > 1:
            self.volumeLevel -= 1
            
     def show(self):
     	print('current channel:{:d},current volumeLevel:{:d}'.format(self.channel,
     	self.volumeLevel))

类使用示例代码


```python
def main2():
    tv1 = TV()
    tv1.turnOn()
    tv1.getChannel()  # 1
    tv1.getVolumeLevel()  # 1
    tv1.show()

    tv1.setChannel(5)
    tv1.setVolumeLevel(5)
    tv1.getChannel()  # 5
    tv1.getVolumeLevel()  # 5
    tv1.show()

    tv1.channelDown()
    tv1.volumeLevelDown() 
    tv1.getChannel()   # 4
    tv1.getVolumeLevel()  # 4
    tv1.show()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值