一篇文章带你了解Python中的类

目录
  • 1、类的定义
  • 2、创建对象
  • 3、继承
  • 总结

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程序设计》~

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python类的高级函数详解

    __str__函数 如果定义了该函数,当print当前实例化对象的时候,会返回该函数的return信息 可用于定义当前类的描述信息 用法: def __str__(self): return str_type 参数:无 返回值:一般返回对于该类的描述信息 __getattr__函数 当调用的属性或者方法不存在时,会返回该方法定义的信息 用法: def __getattr__(self, key): print(something.-.) 参数: key: 调用任意不存在的属性名 返回值: 可以是

  • Python入门变量的定义及类型理解

    变量的定义 在程序中,有时我们需要对2个数据进行求和,那么该怎样做呢? 大家类比一下现实生活中,比如去超市买东西,往往咱们需要一个菜篮子,用来进行存储物品,等到所有的物品都购买完成后,在收银台进行结账即可. 如果在程序中,需要把2个数据,或者多个数据进行求和的话,那么就需要把这些数据先存储起来,然后把它们累加起来即可. 在Python中,存储一个数据,需要一个叫做 变量 的东西,如下示例: num1 = 100 #num1就是一个变量,就像一个小菜篮子 num2 = 87 #num2也是一个变量

  • Python的内置数据类型中的数字

    目录 Python的内置数据类型中的数字 1.变量 2.数据类型总览 3.Python是弱类型的语言 4.各数据类型的详细介绍 4.1 整数(int) 4.2 浮点数/小数(float) 5.复数(complex) 6.布尔类型(bool) Python的内置数据类型中的数字 1.变量 说数据类型之前,我们要先思考一下下面几个问题: 数据是怎么存的呢? 数据类型有啥作用呢? 各种数据类型有啥区别呢? 要想回答这些问题,首先还是要先了解一下变量的概念.那么何为变量呢? 变量(Variable)可以

  • python 类相关概念理解

    目录 什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性) 类变量和类属性的分类 类调用实例方法 类的封装(enclosure),继承和多态 迭代,迭代器(iterator),可迭代对象(iterable object),生成器(generator) 总结 什么是类,对象,实例,类## 标题变量(类属性),实例变量(实例属性) 面向对象编程(Object-oriented Programming,简称 OOP),是一种封装代码的方法.比如说,将乱七八糟的数据扔进列表中,这就是一

  • python入门课程第四讲之内置数据类型有哪些

    目录 前言 变量 数据类型总览 Python是弱类型的语言 各数据类型的详细介绍 整数(int) 整数的不同进制 浮点数/小数(float) 小数的书写形式 复数(complex) 布尔类型(bool) 总结 我命油我不油天,今天依然是学习的一天.本文是[Python入门课程]系列的第四篇,其主要介绍Python的内置数据类型中的数字 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎踊跃留言哦~ ~ ~. 前言 这篇文章主要介绍Python内置数据类型中的数字(Number)

  • python学习之新式类和旧式类讲解

    目录 object 新式类 旧式类 新式类和旧式类的区别 重点 Python 2.x 中声明类 旧式类 新式类 Python 3.x 中声明类 object object 是 Python 为所有对象提供的父类,默认提供一些内置的属性.方法:可以使用 dir 方法查看 新式类 以 object 为父类的类,推荐使用在 Python 3.x 中定义类时,如果没有指定父类,会默认使用 object 作为该类的父类所以 Python 3.x 中定义的类都是新式类 旧式类 不以 object 为父类的类

  • 一篇文章带你了解Python中的类

    目录 1.类的定义 2.创建对象 3.继承 总结 1.类的定义 创建一个rectangle.py文件,并在该文件中定义一个Rectangle类.在该类中,__init__表示构造方法.其中,self参数是每一个类定义方法中的第一个参数(这里也可以是其它变量名,但是Python常用self这个变量名).当创建一个对象的时候,每一个方法中的self参数都指向并引用这个对象,相当于一个指针.在该类中,构造方法表示该类有_width和_height两个属性(也称作实例变量),并对它们赋初值1. __st

  • 一篇文章带你了解Python中的装饰器

    目录 前言 Python 中的装饰器是什么 语法糖 使用 Python 装饰器修改函数行为 使用 Python 装饰器对函数进行计时 使用 Python 装饰器将有用信息记录到终端 Web app 中使用的装饰器 将参数传递给 Python 装饰器 使用多个 Python 装饰器 总结 前言 本文将带你学习装饰器在 Python 中的工作原理,如果在函数和类中使用装饰器,如何利用装饰器避免代码重复(DRY 原则,Don’t Repeat Yourself ). Python 中的装饰器是什么 装

  • 一篇文章带你了解python中的typing模块和类型注解

    目录 typing模块 Dict List Tuple set/AbstractSet Sequence NoReturn Any TypeVar NewType Callable Union Optional Generator 总结 function annotation 写法: 使用冒号 : 加类型代表参数类型 默认值参数示例:b: int = 2 使用 -> 加类型代表返回值类型 python解释器运行时并不会检查类型,类型不对也不会抛异常,仅仅是注解而已.示例: def plus(a:

  • 一篇文章带你吃透JavaScript中的DOM知识及用法

    目录 一.前言 二.DOM框架 三.认识DOM节点 四.JS访问DOM 1.获取节点 2.改变 HTML 3.改变 CSS 4.检测节点类型 5.操作节点间的父子及兄弟关系 6.操作节点属性 7.创建和操作节点 总结 一.前言 DOM:Document Object Model(文档对象模型),定义了用户操作文档对象的接口,可以说DOM是自HTML将网上相关文档连接起来后最伟大的创新.它使得用户对HTML有了空前的访问能力,并使开发者将HTML作为XML文档来处理. 本文知识导图如下: 二.DO

  • 一篇文章带你了解Java中ThreadPool线程池

    目录 ThreadPool 线程池的优势 线程池的特点 1 线程池的方法 (1) newFixedThreadPool (2) newSingleThreadExecutor (3) newScheduledThreadPool (4) newCachedThreadPool 2 线程池底层原理 3 线程池策略及分析 拒绝策略 如何设置maximumPoolSize大小 ThreadPool 线程池的优势 线程池做的工作主要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些

  • 一篇文章带你了解数据库中group by的用法

    前言 本章主要介绍数据库中group by的用法,也是我们在使用数据库时非常基础的一个知识点.并且也会涉及Join的使用,关于Join的用法,可以看我写的上一篇文章:带你了解数据库中JOIN的用法 如有错误还请大家及时指出~ 以下都是采用mysql数据库 Group By 概念 Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)". 作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. 注意:group by

  • 一篇文章带你了解python标准库--time模块

    目录 1. 调用语法: 2. time概述 3. 时间获取 4. 时间格式化(将时间以合理的方式展示出来) 5. 程序计时应用 6. 示例 总结 Time库是python中处理时间的标准库 1. 调用语法: import time time.<b>() 计算机时间的表达,提供获取系统时间并格式化输出功能 提供提供系统精确即使功能,用于程序性能分析 2. time概述 time库包括三类函数 时间获取: time() ctime() gmtime() 时间格式化: strftime() strp

  • 一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念

    前言 在Python中可迭代(Iterable).迭代器(Iterator)和生成器(Generator)这几个概念是经常用到的,初学时对这几个概念也是经常混淆,现在是时候把这几个概念搞清楚了. 0x00 可迭代(Iterable) 简单的说,一个对象(在Python里面一切都是对象)只要实现了只要实现了__iter__()方法,那么用isinstance()函数检查就是Iterable对象: 例如 class IterObj: def __iter__(self): # 这里简单地返回自身 #

  • 一篇文章带你了解python正则表达式的正确用法

    目录 正则表达式的介绍 re模块 匹配单个字符 1.匹配任意一个字符 2.匹配[ ]中列举的字符 3.\d匹配数字,即0-9 4.\D匹配非数字,即不是数字 5.\s匹配空白,即 空格,tab键 6.\S匹配非空白 7.\w匹配非特殊字符,即a-z.A-Z.0-9._.汉字 8.\W匹配特殊字符,即非字母.非数字.非汉字 总结 正则表达式的介绍 1)在实际开发过程中经常会有查找符合某些复杂规则的字符串的需要,比如:邮箱.手机号码等,这时候想匹配或者查找符合某些规则的字符串就可以使用正则表达式了.

  • 一篇文章带你自学python Django

    目录 1. Django简介 Django是什么? Django前景 Django框架核心 2. 设计模式 MVT模式 3. 开发环境简介 4.创建虚拟环境 4.1.首先安装管理环境的包以及虚拟环境包 4.1.1 安装环境管理包virtualenvwrapper 4.1.2 安装虚拟环境包virtualenv 4.1.3 查看pip list,检查是否安装成功 4.2 对虚拟环境的操作 4.2.1 创建虚拟环境 4.2.2 查看虚拟环境中的包,并安装Django包 4.2.3 退出虚拟环境 4.

随机推荐