一篇文章带你了解Python中的类
作者:NEUer_桓 发布时间:2022-10-11 19:46:18
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程序设计》~
来源:https://blog.csdn.net/qq_44853197/article/details/120256397


猜你喜欢
- 上一篇文章中我们了解到oracle常见故障类别及规划解析,接下来,我们看看oracle数据库ORA-01196错误解决的相关内容,具体如下:
- k-means聚类算法k-means是发现给定数据集的k个簇的算法,也就是将数据集聚合为k类的算法。算法过程如下:1)从N个文档随机选取K个
- 其实网上已经有很多ASP生成htm的文章了,有一种方法是ASP+XML的生成方法,虽然有一种好处就是不用程序写模版就可以直接引用原来的要生成
- 虽然淘宝商城的名字中带有“商城”两字,但是很显然的,淘宝商城并不是一个B2C商城,淘宝商城仍只是一个C2C平台,充其量只是个收费版的淘宝。在
- 楔子shutil 是一个 Python 内置模块,该模块对文件的复制、删除和压缩等操作都提供了非常方便的支持。下面来详细介绍一下该模块的用法
- 基本上快被这个问题搞疯了,症状如下症状描述:在ie下(6或7,8没有试过)当出现中英文混排,都采用默认字体时,并使用 li 列表做float
- 您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 g
- 这篇文章主要介绍了Python如何计算语句执行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 如何导入SQL数据库如何将现成的数据库导入到MySQL中?有两种方式:通过终端命令行语句导入:mysql> source SQL文件的
- 本文实例为大家分享了python模拟事件触发机制的具体代码,供大家参考,具体内容如下EventManager.py# -*- encodin
- 需要ocr识别,推荐一个Python免费的验证码识别-ddddocr安装过程:1、镜像安装:pip install ddddocr -i h
- yum or rpm?yum安装方式很方便,但是下载mysql的时候从官网下载,速度较慢。rpm安装方式可以从国内镜像下载mysql的rpm
- Python编写一个简易银行账户系统,供大家参考,具体内容如下文章中主要涉及的方法是Python中的open(filename, ‘r
- 本文实例讲述了Python面向对象class类属性及子类用法。分享给大家供大家参考,具体如下:class类属性class Foo(objec
- 首先预览一下 PyCharm 在实际应用中的界面:(更改了PyCharm的默认风格)安装首先去下载最新的pycharm 2.7.3,进行安装
- 一、算法 1、算法的主要思想就是将一个中缀表达式(Infix expression)转换成便
- 首先,我们要先看看微信远程控制电脑的原理是什么呢? 我们可以利用Python的标准库控制本机电脑,然后要实现远程的话,我们可以把电子邮件作为
- 这篇文章主要介绍了python 采用paramiko 远程执行命令及报错解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 本代码实现的是,在旋转10度的基础上,再进行增加对比度的操作。1 代码:代码注释中的代码都是可以运行的. 但是不怎么靠谱,因为文
- 本文实例为大家分享了opencv矿石图片检测矿石数量的具体代码,供大家参考,具体内容如下原始矿石图片此类图片是高躁图,二值化后图像如下采用膨