博客
关于我
Python中:self和__init__的含义 + 为何要有self和__init__
阅读量:170 次
发布时间:2019-02-28

本文共 1193 字,大约阅读时间需要 3 分钟。

Python中的self和__init__的含义 + 为何要有self和__init__

1. self的含义

在Python的类(Class)中,方法的第一个参数通常是self(“自身”)。这个参数表示当前实例(Instance),即类的对象(Object)。以下是self的具体含义:

  • self表示实例本身:在类的方法中,self指向当前类实例。例如,当你创建一个Person类的实例p = Person("crifan")时,p就是self。

  • 操作实例属性:通过self可以访问实例的属性。例如,self.name可以读取或设置实例的name属性。

  • 调用实例方法:通过self可以调用实例的方法。例如,self.sayYourName()会调用实例的sayYourName方法。

2. 为何要有self

  • 操作实例特定属性和方法:在类的方法中,通常需要访问实例的属性或调用实例的方法。使用self可以明确地指向当前实例,避免与其他变量混淆。

  • 避免全局变量和局部变量的冲突:如果不使用self,可能会引入全局变量或局部变量,导致无法正确访问实例属性和方法。

3. __init__的含义

init(双下划线开头和闭尾)是Python中用于初始化类实例的特殊方法。它在实例被创建时自动调用,用于执行初始化操作。

4. 为何要有__init__

  • 初始化实例属性:在__init__方法中,可以初始化实例的属性。例如,self.name = newPersionName会为实例设置name属性。

  • 执行初始化逻辑:可以在__init__中执行与实例创建相关的初始化逻辑,如连接数据库、加载配置文件等。

  • 接收参数:可以通过__init__接受参数,并根据参数初始化实例的属性。例如,newPersionName可以是实例的名字。

  • 确保实例独立性:每个实例在初始化时都会执行__init__,确保每个实例都有独立的属性和状态。

示例代码解释

以下是示例代码,展示了如何在Python中使用self和__init__:

class Person:    def __init__(self, newPersionName):        self.name = newPersionName    def sayYourName(self):        print("My name is %s" % self.name)
  • __init__方法:接受self和newPersionName参数,用于初始化实例的name属性。
  • sayYourName方法:通过self.name打印实例的名字。

总结

  • self:表示当前实例,用于访问实例属性和方法。
  • init:用于初始化实例,设置初始状态,接收参数,确保实例独立性。

通过理解和使用这些概念,你可以更好地管理类实例,编写更稳定和可靠的代码。

转载地址:http://osnj.baihongyu.com/

你可能感兴趣的文章
NSUserdefault读书笔记
查看>>
NS图绘制工具推荐
查看>>
NT AUTHORITY\NETWORK SERVICE 权限问题
查看>>
NT symbols are incorrect, please fix symbols
查看>>
ntelliJ IDEA 报错:找不到包或者找不到符号
查看>>
NTFS文件权限管理实战
查看>>
ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
查看>>
ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
查看>>
ntp server 用法小结
查看>>
ntpdate 通过外网同步时间
查看>>
ntpdate同步配置文件调整详解
查看>>
NTPD使用/etc/ntp.conf配置时钟同步详解
查看>>
NTP及Chrony时间同步服务设置
查看>>
NTP服务器
查看>>
NTP配置
查看>>
NUC1077 Humble Numbers【数学计算+打表】
查看>>
NuGet Gallery 开源项目快速入门指南
查看>>
NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
查看>>
nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
查看>>
Nuget~管理自己的包包
查看>>