博客
关于我
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/

你可能感兴趣的文章
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—6.ByteBuf原理二
查看>>
Netty源码—7.ByteBuf原理三
查看>>
Netty源码—7.ByteBuf原理四
查看>>
Netty源码—8.编解码原理二
查看>>
Netty源码解读
查看>>
Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
查看>>
Netty相关
查看>>
Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
查看>>
Network Sniffer and Connection Analyzer
查看>>
NetworkX系列教程(11)-graph和其他数据格式转换
查看>>
Networkx读取军械调查-ITN综合传输网络?/读取GML文件
查看>>
Net与Flex入门
查看>>
net包之IPConn
查看>>
NFinal学习笔记 02—NFinalBuild
查看>>
NFS共享文件系统搭建
查看>>