Python类class参数self原理解析
1.self只有在类的方法中才会有,其他函数或方法是不必带self的。
2.在调用时不必传入相应的参数。
3.在类的方法中(如__init__),第一参数永远是self,表示创建的类实例本身,而不是类本身。
4.可以把对象的各种属性绑定到self。
5.self代表当前对象的地址。self能避免非限定调用造成的全局变量。
6.self不是python的关键字,也可以用其他名称命名,但是为了规范和便于读者理解,推荐使用self。
python中的self等价于C++中的self指针和Java、C#中的this参数。
7.如果不加self,表示是类的一个属性(可以通过"类名.变量名"的方式引用),加了self表示是类的实例的一个属性(可以通过"实例名.变量名"的方式引用)
#例如: class 类Test(object): val = 100 def __init__(self): self.val = 200 对象test = 类Test() //类对象化 对象test.val #输出200 类Test.val #输出100
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python self 参数详解
1.概述 1.1 场景 我们在使用 Python 中的 方法 method 时,经常会看到 参数中带有 self,但是我们也没对这个参数进行赋值,那么这个参数到底是啥意思呢? 2.知识点 2.1 成员函数(m) 和 普通方法(f) Python 中的 "类方法" 必须有一个额外的 第一个参数名称(名称任意,不过推荐 self),而 "普通方法"则不需要. m.f.c 都是代码自动提示时的 左边字母(method.function.class) # -*- codin
-
全面理解Python中self的用法
刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数?你看完这篇文章后就会明白所有的疑问. self代表类的实例,而非类. 实例来说明: class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt() 执行结果如下 <__main__.Test object at 0x000000000284E080> <class
-
python类参数self使用示例
复制代码 代码如下: #coding:utf-8"""__new__和__init__到底是怎么一回事,看下面的代码如果类没有定义__new__方法,就从父类继承这个__new__方法.__new__先于__init__执行,类带括号调用时,发生这样的一件事,先调用类的__new__方法,放回该类的实例对象,这个实例对象就是__init__方法的第一个参数.请看代码中tmp,self,p的内存地址都是一样的,都是类的实例对象.""" class
-
python定义类self用法实例解析
这篇文章主要介绍了python定义类self用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数. class Person: def __init__(self): print("正在执行构造方法") def study(self, name): print(name, "正在学python")
-
Python中的self用法详解
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self.其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法. class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的. 一个类(class)应该包含数据和操作数据的方法,通俗来讲就是属性和函数(即调用方法). 类 class 中为啥用使用 self ? 在类的代码(函数)中,需要访问当前的实例中的变量和函数,即访问Instance中的
-
python3中类的继承以及self和super的区别详解
python中类的继承: 子类继承父类,及子类拥有了父类的 属性 和 方法. python中类的初始化都是__init__().所以父类和子类的初始化方式都是__init__(),但是如果子类初始化时没有这个函数,那么它便调用父类的__init__():如果实现了这个函数,就会覆盖父类的初始化函数.如果继承父类的__init__(),就需要在子类中显示调用这个函数.实现如下: class Animal(object): def __init__(self): self.name = "我是父类&
-
Python中为什么要用self探讨
接触Python以来,看到类里的函数要带个self参数,一直搞不懂啥麻子原因.晚上特别针对Python的self查了一下,理理. Python要self的理由 Python的类的方法和普通的函数有一个很明显的区别,在类的方法必须有个额外的第一个参数 (self ),但在调用这个方法的时候不必为这个参数赋值 (显胜于隐 的引发).Python的类的方法的这个特别的参数指代的是对象本身,而按照Python的惯例,它用self来表示.(当然我们也可以用其他任何名称来代替,只是规范和标准在那建议我们一致
-
对Python中class和instance以及self的用法详解
一. Python 的类和实例 在面向对象中,最重要的概念就是类(class)和实例(instance),类是抽象的模板,而实例是根据类创建出来的一个个具体的 "对象". 就好比,学生是个较为抽象的概念,同时拥有很多属性,可以用一个 Student 类来描述,类中可定义学生的分数.身高等属性,但是没有具体的数值.而实例是类创建的一个个具体的对象, 每一个对象都从类中继承有相同的方法,但是属性值可能不同,如创建一个实例叫 hansry 的学生,其分数为 93,身高为 176,则这个实例拥
-
Python类class参数self原理解析
1.self只有在类的方法中才会有,其他函数或方法是不必带self的. 2.在调用时不必传入相应的参数. 3.在类的方法中(如__init__),第一参数永远是self,表示创建的类实例本身,而不是类本身. 4.可以把对象的各种属性绑定到self. 5.self代表当前对象的地址.self能避免非限定调用造成的全局变量. 6.self不是python的关键字,也可以用其他名称命名,但是为了规范和便于读者理解,推荐使用self. python中的self等价于C++中的self指针和Java.C#
-
Python类继承和多态原理解析
这篇文章主要介绍了python类继承和多态原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个特征:封装.继承.多态. 1.封装:类封装了一些方法,可通过一定的规则约定方法进行访问权限. C++中的成员变量有public.private.pto
-
python类中super() 的使用解析
描述 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承)等种种问题. MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表. 语法 以下是 super() 方法的语法: super(type[, object-or-type]) Python中类的初始化都是__init__(), 所以父类和子类的初始化方式都是__init_
-
python线程定时器Timer实现原理解析
这篇文章主要介绍了python线程定时器Timer实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.线程定时器Timer原理 原理比较简单,指定时间间隔后启动线程!适用场景:完成定时任务,例如:定时提醒-闹钟等等. # 导入线程模块 import threading timer = threading.Timer(interval, function, args=None, kwargs=None) 参数介绍: interval
-
python实现布隆过滤器及原理解析
在学习redis过程中提到一个缓存击穿的问题, 书中参考的解决方案之一是使用布隆过滤器, 那么就有必要来了解一下什么是布隆过滤器.在参考了许多博客之后, 写个总结记录一下. 一.布隆过滤器简介 什么是布隆过滤器? 本质上布隆过滤器( BloomFilter )是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 "某样东西一定不存在或者可能存在". 相比于传统的 Set.Map 等数据结构,它更高效
-
Python迭代器模块itertools使用原理解析
这篇文章主要介绍了Python迭代器模块itertools使用原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 介绍 今天介绍一个很强大的模块,而且是python自带的,那就是itertools迭代器模块. 使用 使用起来很简单,先导入模块 import itertools 下面,我们通过一些例子边学边练 三个无限迭代器 先告诉大家 control + C 可以强制停止程序哦 1.count() num = itertools.count
-
Python线程条件变量Condition原理解析
这篇文章主要介绍了Python线程条件变量Condition原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Condition 对象就是条件变量,它总是与某种锁相关联,可以是外部传入的锁或是系统默认创建的锁.当几个条件变量共享一个锁时,你就应该自己传入一个锁.这个锁不需要你操心,Condition 类会管理它. acquire() 和 release() 可以操控这个相关联的锁.其他的方法都必须在这个锁被锁上的情况下使用.wait()
-
Python类反射机制使用实例解析
这篇文章主要介绍了Python类反射机制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 反射就是通过字符串的形式,导入模块:通过字符串的形式,去模块寻找指定函数并执行. Python有四个内置函数: 函数 功能 getattr(object, attr[, default]) 获取指定字符串名称的对象属性或方法,如果对象有该属性则返回属性值,如果有该方法则返回该方法的内存地址,如果都没有就报错,如果指定了默认值找不到不会报错会取默认
-
python垃圾回收机制(GC)原理解析
这篇文章主要介绍了python垃圾回收机制(GC)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天想跟大家分享的是关于python的垃圾回收机制,虽然本人这会对该机制没有很深入的了解, 但是本着热爱分享的原则,还是囫囵吞枣地坐下记录分享吧, 万一分享的过程中开窍了呢.哈哈哈. 首先还是做一下概述吧: 我们都知道, 在做python的语言编程中, 相较于java, c++, 我们似乎很少去考虑到去做垃圾回收,内存释放的工作, 其实是p
-
python next()和iter()函数原理解析
这篇文章主要介绍了python next()和iter()函数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们首先要知道什么是可迭代的对象(可以用for循环的对象)Iterable: 一类:list,tuple,dict,set,str 二类:generator,包含生成器和带yield的generatoe function 而生成器不但可以作用于for,还可以被next()函数不断调用并返回下一个值,可以被next()函数不断返回
随机推荐
- Flex tree加虚线显示效果并且替代原始图标
- jquery插件uploadify实现带进度条的文件批量上传
- 新手学习Linux系统的11点建议
- 查看驱动器(盘符)的批处理
- Java TreeMap排序算法实例
- SpringMvc+Mybatis+Pagehelper分页详解
- git提交空目录的方法
- JS实现的四级密码强度检测功能示例
- asp.net生成缩略图实现代码
- JS+CSS实现的日本门户网站经典选项卡导航效果
- javascript操作Cookie(设置、读取、删除)方法详解
- jQuery地图map悬停显示省市代码分享
- 深入理解Nodejs Global 模块
- SNMP漏洞威胁网络安全
- 蓝雨设计整站SQL注入漏洞
- Android实现将应用崩溃信息发送给开发者并重启应用的方法
- 一个连接两个不同MYSQL数据库的PHP程序
- 浅谈C# 序列化与反序列化几种格式的转换
- 高质量Python代码编写的5个优化技巧
- Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】