首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解Python对象本身self

「先下结论:类实例化后,self即代表着实例对象)本身」 想要理解self有个最简单的方法,就是你把self当做「实例对象)的身份证。」...Python的类不能直接使用,只有通过创建实例对象)才能发挥它的功能,每个实例对象)都是独一无二的,它可以调用类的方法、属性。类就像灵魂附体一样,让实例对象)有了自己(self)的功能。...(方法),而Python中的实例对象)也可以凭着self去调用类的方法。...上面是用类比的方法解释了下self的含义,说到底self就是代表着实例本身,「当某个实例对象)调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,而这第一个参数就是self。」...at 0x00000129EB0F6B38> ❞ 大家能清楚看到两个实例打印出的self是不一样的,因为self代表着实例对象)本身。

28620

Python - 面向对象编程 - self 参数

在类里面,所有实例方法都需要加 self 参数,且排在第一个,有且仅有一个 self 参数的含义 在类中定义的方法,第一个参数 self 指向调用该方法的实例对象,在方法中通过 self.属性 这样的形式访问对象实例属性...参数 类比 如果把类比作造房子的图纸 类实例化后的对象是真正可以住的房子 根据一张图纸(类),可以设计出成千上万的房子(实例对象) 每个房子长相都是类似的(都有相同的实例属性和实例方法),但它们都有各自的主人...如何区分不同的房子:通过 self 参数,可以保证每个房子的主任仅能进入自己的房子(每个实例对象只能调用自己的实例属性和实例方法) 重点 一个类可以产生多个实例对象,当某个实例对象调用实例方法,该对象会把自身的引用作为第一个参数自动传递给该方法...# 实例对象一 blog1 = PoloBlog() blog1.say() print("实例对象 blog1 id is ", id(blog1)) # 实例对象2 blog2 = PoloBlog...实例对象 blog2 id is 4555557568 很明显,self 存的就是调用该实例方法的实例对象的引用 所以!

39330
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP后期静态绑定之self::限制实例分析

    本文实例讲述了PHP后期静态绑定之self::限制。分享给大家供大家参考,具体如下: 在此我想讲一讲后期静态绑,我想讲self::与static进行比较说明。...在此我想用官方文档上的一个例子来说明self::限制: self::实例 class A{ public static function who(){ echo __CLASS__; }...(){ echo __class__; } } $B=new B(); $B- test();` 输出结果为: A static实例: class A{ public static...看到static::,不禁想起来:self:: parent:: 在此我想把self:: static:: parent::进行一个比较: self:: 通常指向类本身,也就是self是不指向任何已经实例化的对象...更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串

    65531

    对象如何实例

    前言 平时开发时通过new来构建对象实例。...通过引用变量指向被创建的对象,并使用此引用变量操作对象,在实例对象的过程中JVM到底发生了一些什么样的行为变化呢,这个问题在日常进行功能开发时可能并没有怎么去关注,本小节来对这部分知识点来进行学习,同时也加强一下对于...首先计算对象占用内存的空间大小,如果实例成员变量是引用变量,仅分配引用变量空间即可,即4个字节大小,接着在堆中划分一块内存给新对象,在分配内存空间时,需要进行同步操作,比如采用CAS失败重试、区域加锁等方式保证分配操作的原子性...即各种不同形式的零值 4、设置对象头。设置新对象的哈希码、GC信息、锁信息、对象所属的类元信息等。这个过程的具体设置方式取决于jvm实现 5、执行init方法。...初始化成员变量,执行实例化代码块、调用类的构造方法,并把堆内对象的首地址复制给引用变量 说明:在Hotspot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance

    1.2K10

    Python_对象实例

    1.实例化过程 对象就是类实例化的结果,我们可以模仿函数的调用方式来进行实例化的过程,如下图所示: ? 可以发现,函数是函数名(实参1,实参2,...)...,而实例化是类名(self,参数1,参数2,...),实例化的过程看下图: ?...2.对象属性相关 2.1 数据属性 在执行构造函数的过程中自动将数据添加到对应的实例的数据字典中,如下图所示: ? 那么如何进项数据属性查询呢?...1.我门可以参看使用函数来进行面向对象的设计,可以使用实例名+点(英文.)来直接访问;2.可以使用实例的属性字典,按照字典的操作来访问对应的属性,如下图所示: ?...__dict__) #对象的属性字典 #对象的数据属性访问 #方法1.使用实例名+点 print(door1.size) #方法2.使用实例字典的性质进行访问 print(door1.

    68710

    python关于类、方法、对象(实例):通过一个例子看一下self都做了哪些事情

    这个特别的变量指对象本身,按照惯例它的名称是 self。...—— 摘自《A Byte of Python3(中文版)》 在类方法中,按惯例第一个第一个参数通常都称为self,这个参数给方法提供一个钩子,从而返回调用的主体,也就是实例对象:因为类可以产生许多实例对象...—— 摘自《Python学习手册第3版》 通过上面2段描述可以把self简单理解为实例本身,一般对类进行实例化得到一个实例对象后,通过点记法来调用类中的方法,如下: Object.method(arg1...(r,"POST",url,data),也就是说实例本身也是一个参数,只不过我们不需要传入self,python已经帮我们处理了。...self,这就涉及到了静态方法、类方法、类(实例)方法的区别了

    24810

    JVM实战 - 对象实例

    Java是面向对象的静态强类型语言,声明并创建对象的代码很常见,根据某个类声明一个引用变量指向被创建的对象,并使用此引用变量操作该对象实例对象的过程中,JVM中发生了什么化学反应呢?...● 分配对象内存 首先计算对象占用空间大小,如果实例成员变量是引用变量,仅分配引用变量空间即可(4个字节),接着在堆中划分一块内存给新对象 在分配内存空间时,需要进行同步操作,比如采用CAS失败重试...对象在内存中存储的布局分三部分 对象头(Header) 实例数据(Instance Data) 对齐补充(Padding) 2.1 对象头 存储对象在运行过程中自身所需要的一些数据 哈希码、GC分代年龄...、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等 类型指针 即对象指向它的类元数据的指针,JVM通过该指针能确定这个对象是哪个类的实例....另外,如果对象是一个数组,那么对象头中还要包含数组长度(因为从数组的元数据无法确定数组的大小). 2.2 实例数据 实例数据部分就是程序定义的各种字段的内容,包含父/子类的都会记录下来 2.3 对齐填充

    1.2K40

    VB FileSystemObject对象实例详解

    FileSystemObject对象被用来访问服务器上的文件系统。这个对象能够处理文件、文件夹和目录路径。用它来检索文件系统信息也是可能的。...fname.Closeset fname=nothingset fs=nothing%>FileSystemObject对象的属性和方法如下:一、属性Drives:返回计算机上关于所有Drive对象的集...CreateTextFile:创建一个文本文件并返回一个TextStream对象用来读写所创建的文本文件。DeleteFile:删除一个或多个指定的文件。...GetFile:返回一个关于指定路径的文件对象。GetFileName:返回指定路径中最后部分的文件名或文件夹名。GetFolder:返回一个关于指定路径的文件夹对象。...OpenTextFile:打开一个文件并返回一个TextStream对象用来读写所打开的文件。BuildPath方法BuildPath方法为已存在的路径增加一个名字。

    1.1K00

    第171天:面向对象——对象实例和原型对象进阶

    一、实例拷贝原理 当实例化的时候,都会将构造函数的属性拷贝一份,同时赋给新值 因为有的构造函数有默认值 一旦你给实例赋给了新值,就会将内存空间替换掉 Function对象 定义的各种数据类型的变量最终其实都是一个对象...constructor属性其实就是Function对象的一个属性而已 对象又是通过函数实现的 对象其实就是一个Function 的一个实例而已。。。...所以构造函数其实就是Function对象的一个实例实例拷贝自构造函数,所以实例含有Function对象的所有属性和方法 constructor 它就是用于检测某个实例的构造函数是哪个 其实constructor...实例化的时候只拷贝构造函数中的属性,而不会拷贝原型对象中的属性 函数和对象 其实js中本来没有对象这个概念 利用函数实现了对象 原型对象本质: 原型对象的属性和方法可以被所有实例共享 这样,如果我们需要修改所有实例中的属性或者方法...属性 prototype属性:保存的就是地址 作用:将实例和原型对象联系在一起。

    67930

    python self

    这个特别的变量指对象本身,按照惯例它的名称是self。 虽然你可以给这个参数任何名称,但是强烈建议你使用self这个名称——其他名称都是不赞成你使用的。...你 一定很奇怪Python如何给self赋值以及为何你不需要给它赋值。举一个例子会使此变得清晰。假如你有一个类称为MyClass和这个类的一个实例 MyObject。...当你调用这个对象的方法MyObject.method(arg1, arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2)——这就是self...实例1: ========================================================================== In [1]: class Testself...可以将特性绑定到一个普通函数上,这样就不会有特殊的self参数了 实例2: ==============================================================

    65410
    领券