Python中的类

本文介绍了Python中的面向对象编程概念,包括如何定义一个Rectangle类,使用构造方法`__init__`初始化对象,以及实现`__str__`方法进行对象的字符串表示。此外,还展示了对象的创建和属性的设置与获取。进一步,文章探讨了类的继承,通过创建Square类作为Rectangle的子类,并添加新的属性和方法,如`isSquare`。最后,通过实例展示了如何创建和操作这些类的对象。
摘要由CSDN通过智能技术生成

1、类的定义

      创建一个rectangle.py文件,并在该文件中定义一个Rectangle类。在该类中,__init__表示构造方法。其中,self参数是每一个类定义方法中的第一个参数(这里也可以是其它变量名,但是Python常用self这个变量名)。当创建一个对象的时候,每一个方法中的self参数都指向并引用这个对象,相当于一个指针。在该类中,构造方法表示该类有_width和_height两个属性(也称作实例变量),并对它们赋初值1。
      __str__方法表示用字符串的方式表示这个对象,方便打印并显示出来,相当于Java中的类重写toString方法。其中,__init__和__str__是类提供的基本方法。

class Rectangle:
    # 构造方法
    def __init__(self, width=1, height=1):
        self._width = width
        self._height = height
        
    # 状态表示方法
    def __str__(self):
        return ("Width: " + str(self._width)
                + "\nHeight: " + str(self._height))

    # 赋值方法
    def setWidth(self, width):
        self._width = width

    def setHeight(self, height):
        self._height = height

    # 取值方法
    def getWidth(self):
        return self._width

    def getHeight(self):
        return self._height

    # 其它方法
    def area(self):
        return self._width * self._height

2、创建对象

      新建一个Test.py文件,调用rectangle模块中的Rectangle的类。

import rectangle as rec

r = rec.Rectangle(4, 5)
print(r)
print()
r = rec.Rectangle()
print(r)
print()
r = rec.Rectangle(3)
print(r)

      接着输出结果:
输出
      打印Rectangle类的对象直接调用了其中的__str__方法。上图展示了初始化Rectangle对象时,构造方法中参数的三种不同方式。
      创建一个对象有以下两种形式,其伪代码表示为:
1)objectName = ClassName(arg1,arg2,…)
2)objectName = moduleName.ClassName(arg1,arg2,…)
      变量名objectName表示的变量指向该对象类型。

3、继承

      如果往父类中增加属性,子类必须先包含刻画父类属性的初始化方法,然后增加子类的新属性。伪代码如下:
super().__ init __ (parentParameter1,…,parentParameterN)
      新建一个square.py文件:

import rectangle as rec


class Square(rec.Rectangle):
    def __init__(self, square, width=1, height=1):
        super().__init__(width, height)
        self._square = square

    def __str__(self):
        return ("正方形边长为:" + str(self._width) +
                "\n面积为:" + str(self._square))

    def isSquare(self):
        if self._square == self.getWidth() * self.getWidth():
            return True
        else:
            return False


s = Square(1)
print(s)
print(s.isSquare())
s = Square(2)
print(s)
print(s.isSquare())

      输出:
输出
      以上内容参考自机械工业出版社《Python程序设计》~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TerryBlog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值