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日

相关文章

  • python-已经以plotly安装 但仍无法导入

    Python-已经以plotly安装但仍无法导入 plotly是Python中一个流行的数据可视化库,可以用于创建交互式图表和可视化。如果您已经装了plotly,但仍然无法导入该库,可能是由于以下原因之一:安装不完整、环境变量未设置、版本不兼容等。在本中,我们将详细讲解如何解决这些问题,并提供两个示例如何使用plotly库。 安装完整 如果您已经安装plot…

    other 2023年5月8日
    00
  • django admin后管定制-显示字段的实例

    当我们在使用Django开发Web应用时,会使用到Django admin作为管理后台。但是Django admin默认情况下只显示了一些基本字段,有时我们需要定制显示哪些字段以及字段的顺序,本文将为你详细讲解Django admin后管定制-显示字段的实例。 Django admin显示字段默认值 首先,我们需要了解在Django admin中,每个Mod…

    other 2023年6月25日
    00
  • C++中封装与信息隐藏的详解及其作用介绍

    下面就是“C++中封装与信息隐藏的详解及其作用介绍”的完整攻略。 什么是封装 封装是一种编程思想和方法。在C++中,封装指的是将数据和操作数据的函数(即方法)捆绑在一起,对外部使用者隐藏数据的具体实现细节,同时允许外部使用者通过特定的方式去访问和修改数据。从而保证了数据的安全和内部实现的保密性。 如何实现封装 为了实现封装,我们可以将数据和方法分别定义在一个…

    other 2023年6月25日
    00
  • 把jQuery的类、插件封装成seajs的模块的方法

    将jQuery的类和插件封装成seajs的模块,可以方便地管理和使用,下面是具体的攻略过程。 步骤一:使用define()定义模块 使用define()方法定义一个seajs的模块,该方法需要传递两个参数: 模块的名称。 传递一个数组,表示该模块需要依赖的其他模块。 define(‘jquery’, [], function(){ return $; });…

    other 2023年6月25日
    00
  • vue使用自定义指令实现拖拽

    下面我将详细介绍如何使用自定义指令来实现拖拽功能。 什么是Vue自定义指令 Vue自定义指令本质上是一个指令函数,它接收两个参数:被绑定的元素和一个对象。在对象中你可以设置指令的各种选项和事件钩子。 实现拖拽的步骤 下面是实现拖拽功能的步骤: 1. 创建自定义指令 我们需要创建一个自定义指令,来绑定拖拽事件。在Vue中自定义指令可以使用Vue.directi…

    other 2023年6月25日
    00
  • 漂亮实用的页面loading(加载)封装代码

    下面是详细的“漂亮实用的页面loading(加载)封装代码”的攻略。 什么是页面loading? 在访问网站页面的过程中,如果页面需要加载大量的内容,或者网络速度较慢,那么用户在等待页面加载的同时就会感到极为不耐烦。这时我们就需要一个页面loading来提示用户正在加载中,提高用户体验和满意度。 loading的封装代码实现 第一步:添加代码 我们需要在ht…

    other 2023年6月25日
    00
  • 详解Linux LVM逻辑卷配置过程(创建,增加,减少,删除,卸载)

    详解Linux LVM逻辑卷配置过程 什么是LVM? LVM是Linux Logical Volume Manager(逻辑卷管理器)的缩写。它是一种为Linux操作系统提供磁盘管理的方法,它允许用户将多个硬盘分区或整个硬盘组合成一个逻辑卷,从而为用户提供更加灵活的磁盘空间管理方式。 LVM的组成部分 LVM主要由三个部分组成: 物理卷(PV):即硬盘上的分…

    other 2023年6月27日
    00
  • CSS 去除浏览器默认 轮廓外框

    CSS 去除浏览器默认轮廓外框 背景 在某些浏览器中,当用户聚焦到页面元素上时(例如链接、按钮等),会显示一个默认的蓝色或灰色边框,这被称为「轮廓外框」。然而,大部分网站的设计并不需要这个边框,甚至会影响到页面的美观度。如何去除这个默认的轮廓外框,就成了一个需要解决的问题。 解决方案 1. 使用 CSS 的 outline 属性将轮廓外框设为 0 可以通过下…

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