尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Python 类初始化方法 `__init__` 详解

Python 类初始化方法 `__init__` 详解 类初始化方法 详解类, 是创建对象的蓝图, 于其中, 方法是特殊的, 用于初始化对象属性。理解该方法, 对有效使用类很关键, 因其能让我们在创建对象时设置初始状态。本文会详细介绍, 该方法的基础概念、使用方法、常见实践以及最佳实践。有关于目录, 其基础概念, 使用方法, 常见实践, 最佳实践, 小结, 参考资料, 其中, 是基础概念。在其中, 有一种方法, 它是个特殊的方法, 其也被称作构造函数。当我们去创建一个类的实例之际, 就会自动地调用这个方法。此方法最为主要的作用便是去初始化对象的属性, 进而为对象的属性赋予初始的值。首先, 方法的第一个参数常常是 self, 它所代表的乃是类的实例自身, 借着 self, 我们能够去访问以及修改实例的属性, 紧接着, 下面是一个简单的示例:class Person: def __init__(self, name, age): self.name name self.age age # 创建一个 Person 类的实例 p Person(Alice, 25) print(p.name) # 输出: Alice print(p.age) # 输出: 25在这个示例里头, 方法接纳两个参数, 名为name以及age, 接着把它们分别赋予实例的name属性与age属性。2. 使用方法2.1 基本使用要把方法去给予基本的使用, 其是极为简单的做法, 仅需于类当中去定义一个被称作 的方法, 接着在该方法里对对象的属性实施初始化操作即可。以下提供的属某个更为复杂的示例:class Rectangle: def __init__(self, length, width): self.length length self.width width def area(self): return self.length * self.width # 创建一个 Rectangle 类的实例 r Rectangle(5, 3) print(r.area()) # 输出: 15在这个示例当中, 方法接纳两个参数 以及 width, 并且把它们各自赋予实例的 以及 width 属性。接着, 我们界定了一个 area 方法, 用以算矩形的面积。2.2 默认参数方法同样能够运用默认参数, 默认参数使得我们于创建对象之际, 可不给出某些参数的值, 而是采用默认值, 如下为一个示例:class Circle: def __init__(self, radius1): self.radius radius def area(self): return 3.14 * self.radius ** 2 # 创建一个 Circle 类的实例不提供 radius 参数 c1 Circle() print(c1.area()) # 输出: 3.14 # 创建一个 Circle 类的实例提供 radius 参数 c2 Circle(2) print(c2.area()) # 输出: 12.56在此示例里头, 方法的参数存有一个默认值为1的情况。要是我们于创建对象之际不给出参数的值那么属性会被初始化成1。3. 常见实践3.1 初始化对象的属性较常出现的方法的用处, 是去开展 对象所属属性的开启操作行动, 依托于在 方法里去开展 属性初始值的设定举措, 我们能够做到, 让 在被构建出来之际, 就拥有准确无误的状态情况, 下面是一个示例展示。class BankAccount: def __init__(self, account_number, balance0): self.account_number account_number self.balance balance def deposit(self, amount): self.balance amount def withdraw(self, amount): if amount self.balance: self.balance - amount else: print(Insufficient funds) # 创建一个 BankAccount 类的实例 account BankAccount(123456, 1000) account.deposit(500) account.withdraw(200) print(account.balance) # 输出: 1300处于这个示例情形下, 方法对银行账户的账号以及余额予以了初始化。紧随其后, 我们针对存款与取款操作, 对和方法进行了定义。3.2 调用其他方法其他方法, 类里的, 也能够被方法调用。当在对象创建之际, 有着执行一些额外初始化行动的需求时, 这个用处极大。接下来, 便是其中呈现的一个示例。class Student: def __init__(self, name, grades): self.name name self.grades grades self.average_grade self.calculate_average() def calculate_average(self): if len(self.grades) 0: return 0 return sum(self.grades) / len(self.grades) # 创建一个 Student 类的实例 student Student(Bob, [80, 90, 70]) print(student.average_grade) # 输出: 80.0在这个示例里头, 方法进行了调用 方法, 去计算学生的平均成绩, 并且把结果放置在 属性当中。4. 最佳实践4.1 保持 方法简洁方法的主要目标在于对对象属性进行初始化, 故而一定要尽可能维持着简洁程度。要是必要去开展复杂的初始化行为, 能够把这般的行为给封装进别的方法里头, 同时于 那个方法当中去调用这些方法。4.2 使用默认参数运用默认参数能够提升代码的灵活性, 准许用户于创建对象之际不给出一些参数的值。如此一来可削减代码的重复, 还能让代码更便于使用。4.3 验证输入参数于方法里头, 理应去验证输入参数的有效性, 举例来说, 要是某个参数必然得是正数, 那么在该方法中就得查看该参数的值究竟是不是正数, 以下便是一个示例:class PositiveNumber: def __init__(self, value): if value 0: raise ValueError(Value must be a positive number) self.value value try: num PositiveNumber(-1) except ValueError as e: print(e) # 输出: Value must be a positive number在这个示例里头, 方法对输入参数value的有效性做了验证, 要是value并非正数, 那么就会抛出一个异常。小结这个方法, 是类里极为关键的那么一个方法, 它被用来对对象的属性做初始化操作。经由领会这个方法的基础概念, 以及其使用方式, 和常见实践还有最佳实践之后, 才可更高效地去运用这个类。当运用这个方法时, 得让方法保持简洁, 要采用默认参数, 并且去验证输入参数的有效性。参考资料
返回列表