Python 含参构造函数实例详解

Python 含参构造函数实例详解

在 Python 中,我们可以为类定义构造函数,用于在创建对象时初始化对象的属性。Python 中的构造函数又称为 __init__() 函数。在本文中,我们将详细讲解含参构造函数的使用,以及如何在类中定义含参构造函数。

定义含参构造函数

含参构造函数与无参构造函数的定义方式相似,唯一不同的地方就是含参构造函数需要在定义时指定参数列表。一般情况下,我们将该参数列表称为“self”以外的参数。例如:

class MyClass:
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2

上述代码中,我们定义了一个名为 MyClass 的类,在 __init__() 函数中,我们定义了两个参数,分别为 arg1arg2self 参数代表的是当前对象本身,不属于类的参数范畴。

创建含参构造函数的对象

在定义完含参构造函数后,我们需要创建该类的对象并传递参数。如下例所示:

class MyClass:
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2

my_obj = MyClass('hello', 123)
print(my_obj.arg1)  # 输出:'hello'
print(my_obj.arg2)  # 输出:123

在上述代码中,我们首先定义了一个 MyClass 类,并且为其定义了一个含参构造函数。接着,我们创建了一个名为 my_obj 的该类实例,并将参数传递到该实例的构造函数中。最后,我们通过 print() 函数输出对象属性的值。

含参构造函数示例

简单示例

下面我们来看一个简单的含参构造函数示例。该类用于创建点的实例,并为点定义了 xy 两个属性。

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p = Point(3, 4)
print(p.x)  # 输出:3
print(p.y)  # 输出:4

在上述代码中,我们首先定义了一个名为 Point 的类,并为其定义了一个含参构造函数。接着,我们创建了一个名为 p 的该类实例,并将参数 (3, 4) 传递到该实例的构造函数中。最后,我们通过 print() 函数输出对象属性的值。

带默认值的示例

下面我们来看一个带有默认值的含参构造函数示例。该类用于创建学生的实例,并为学生定义了 nameage 两个属性。在该示例中,当创建学生实例时,如果没有传递 age 参数,则默认将其置为 18。

class Student:
    def __init__(self, name, age=18):
        self.name = name
        self.age = age

s1 = Student('Tom', 20)
s2 = Student('Jerry')
print(s1.name, s1.age)  # 输出:Tom 20
print(s2.name, s2.age)  # 输出:Jerry 18

在上述代码中,我们首先定义了一个名为 Student 的类,并为其定义了一个含参构造函数。在该构造函数中,我们为 age 参数指定了默认值 18。接着,我们创建了两个名为 s1s2 的该类实例,并将参数传递到该实例的构造函数中。当为 s1 传递的参数分别为 'Tom'20 时,而为 s2 传递的只有 'Jerry' 参数,此时 age 参数自动取默认值 18。最后,我们通过 print() 函数输出对象属性的值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 含参构造函数实例详解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Android开发之自定义加载动画详解

    Android开发之自定义加载动画详解 一、前言 在移动APP的开发中,由于数据的加载速度不可控,我们通常会使用加载动画来占位,让用户知道数据正在努力获取中,以此来提升用户体验。在Android开发中,我们可以通过自定义View来创建各种各样的加载动画,本篇攻略将详细讲解如何自定义加载动画。 二、核心步骤 2.1 绘制动画 自定义加载动画的第一步是绘制动画。…

    other 2023年6月25日
    00
  • nginx的return配置

    当然,我很乐意为您提供有关“nginx的return配置”的完整攻略。以下是详细的步骤和两个示例: 1. 什么是nginx的return配置? nginx的return配置用于在服务器端返回HTTP响应。它可以用于重定向、返回状态码、设置响应头等操作。 以下是return配置的基本语法: return code [text]; 在这个示例中,我们使用retu…

    other 2023年5月6日
    00
  • Windows Powershell属性:描述对象是什么

    Windows PowerShell属性:描述对象是什么 在Windows PowerShell中,属性是用于描述对象的特征和状态的一种方式。属性提供了关于对象的信息,可以用于查看、修改和操作对象的属性值。以下是关于Windows PowerShell属性的详细攻略。 1. 查看对象的属性 要查看对象的属性,可以使用Get-Member命令。该命令会列出对象…

    other 2023年10月15日
    00
  • Typora如何调出开发者工具 Typora调出开发者工具教程

    Typora是一款非常好用的Markdown编辑器,当我们需要对它进行一些高级调试或自定义操作时,就需要使用到Typora的开发者工具。下面,我将为您详细讲解Typora如何调出开发者工具,并提供两个示例说明。 步骤一:打开Typora应用程序的偏好设置 首先,我们需要打开Typora应用程序的偏好设置。在Mac OS X操作系统中,我们可以通过点击菜单栏中…

    other 2023年6月26日
    00
  • Android基于reclyview实现列表回弹动画效果

    Android基于RecyclerView实现列表回弹动画效果攻略 在Android开发中,我们经常需要使用RecyclerView来展示列表数据。为了提升用户体验,我们可以为RecyclerView添加回弹动画效果,使得列表在滑动到边界时能够产生弹性效果。下面是实现这一效果的完整攻略。 步骤一:导入依赖库 首先,在项目的build.gradle文件中添加以…

    other 2023年9月6日
    00
  • 基于electron的音视频播放器

    基于Electron的音视频播放器开发攻略: 步骤一:环境搭建 在开始进行基于Electron的音视频播放器开发前,需要先进行环境搭建: 安装Node.js环境,并确保Node.js环境已经添加到系统环境变量中; 安装Electron,执行以下命令进行安装: npm install electron –save-dev 安装第三方Node.js模块,如:e…

    other 2023年6月27日
    00
  • 向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用

    向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用攻略 1. 确定数据库连接 首先,你需要确定与数据库的连接方式。这可以通过使用适当的数据库连接库或驱动程序来实现。具体的步骤可能因所使用的数据库类型而有所不同。 2. 构建插入语句 接下来,你需要构建一个插入语句,以将数据插入到数据库表中。插入语句的具体格式取决于所使用的数据库类型和表结…

    other 2023年7月29日
    00
  • delphi Sender和Tag的用法1

    Delphi中Sender和Tag的用法 在 Delphi 中,Sender 和 Tag 是常用于事件处理中的两个参数。它们能够帮助我们更好的处理事件,并实现更加灵活和可维护的代码。 Sender 参数的作用 Sender 参数常常用于在一个事件处理函数中,确定是哪个控件触发了该事件。在事件被触发时,Delphi 框架会自动将触发事件的控件对象传递给 Sen…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部