# 理解 Python 中的 self 关键字
## 1. 引言
在 Python 的面向对象编程(OOP)中,`self` 是一个非常重要的概念。它在类方法中扮演着指向实例的角色,让你能够访问对象的属性和方法。对于刚入行的开发者,理解 `self` 的运作机制是学习 Python OOP 的基础。
## 2. 如何理解和使用 self
### 2.1 整体流程
为帮助你更好地理解 `s            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-09-12 06:44:47
                            
                                35阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python对象Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。标识用于唯一标识对象,通常应用于对象在计算机内存地址。使用内置函数id(obj)可返回对象obj的标识。同时要注意类型是属于对象的,而不是变量。而对象有两种,“可更改”(mutable)与“不可更改”(immutable)对象。在python中,strings, tuples            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-16 14:40:38
                            
                                96阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python爬虫教你如何实现电脑开机之后自动发送近七日天气信息到QQ邮箱当中 文章目录python爬虫教你如何实现电脑开机之后自动发送近七日天气信息到QQ邮箱当中1.项目的介绍1.1需要的模块2.项目的构建过程2.1爬取各个地区的tid,并写到一个.text文件中2.2 运用字典,根据输入的城市名称,得到tid,构建天气信息网址,并爬取相对应的天气信息2.3 运用selenium实现发送QQ邮件到            
                
         
            
            
            
            ## Python中的self参数
在Python中,当我们定义一个类的方法时,第一个参数通常被命名为`self`。`self`在方法中充当当前对象的引用,它允许我们访问对象的属性和调用其他方法。
那么,如何在类的方法中传递参数并正确使用`self`呢?本文将解答这个问题,并给出一个实际的示例。
## 问题背景
假设我们正在开发一个简单的学生管理系统,其中包含一个`Student`类用于表            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-12 09:16:53
                            
                                193阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # iOS UIViewController中的self传递
在iOS开发中,UIViewController是一个非常重要的类,用于管理和控制应用中的界面。在UIViewController中,我们经常会遇到需要传递self的情况。本文将介绍UIViewController中self传递的概念、用法和示例代码,并通过代码示例和甘特图的形式帮助读者更好地理解。
## 什么是self传递
在i            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-01-15 03:31:10
                            
                                117阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            今天面试被问了一个问题:python函数传参是传值还是传递引用?虽然我知道是传递引用,但是不能深入理解,所以回来就做了一些测试加深理解。1. 当参数是不可变对象时def test(b):
    print("对参数b进行操作前")
    print("参数的id:",id(b))
    b += 2
    print("对参数b进行操作后")
    print("参数的id:",id(b            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-31 21:17:13
                            
                                20阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            staticmethod首先来看@staticmethod,这个装饰器很好理解,就是让类中的方法变成一个普通的函数(因为是普通函数,并没有绑定在任何一个特定的类或者实例上。所以与不需要对象实例化就可以直接调用)。可以使用类或者类的实例调用,并且没有任何隐含参数的传入,所以不需要self(参数名是随便定的)。   >>> class C(object):
...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-08 12:23:03
                            
                                91阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Qt有两种多线程的方法,其中一种是继承QThread的run函数,另外一种是把一个继承于QObject的类用moveToThread函数转移到一个QThread对象里。 Qt4.8之前都是使用继承QThread的run这种方法,但是Qt4.8之后,Qt官方建议使用第二种方法。1)用原始的QThread的started信号触发自定义的slot启动线程,而不是派生QThread的类重载run函数启动线            
                
         
            
            
            
            类:class NovaApi():    def __init__(self):        self.ip = controller_ip        self.port = nova_port        self.http_protocol = http_protocol        self.endpoint = '{}://{}:{}'.format(self.http_pro            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-28 15:05:18
                            
                                483阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            python的self和c++的this最近在准备秋招,同时复习python和c++,在面对对象编程时发现两个语言的一些知识点有一些相似性,因此想把两个语言的共同性用自己的理解讲出来。python的self很多时候我们定义一个类时会发现类里面的成员函数参数前都会有一个self,但是当我们实例化对象后调用这个函数,却只用传入一个实参,直接跳过了self,如下例子,这是为什么呢?self到底是什么?c            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-06 16:00:58
                            
                                71阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            树是我们常见的一种一对多的数据结构。最近为了处理一些事情,写了一颗三层的树。每层的子节点数目均不确定,动态添加。 为了方便管理,写成了嵌套树。class ModelTree():
	#第一层树,创建树是必须指定根结点,不支持创建空树。
	#整颗树存储在tree_dict中,key为root,value为children_dict
	#children_dict中存储所有的子节点,个数不确定,动态添            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-26 17:12:15
                            
                                279阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python中的self,到底是什么角色?1. 首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。2. self名称不是必须的,在python中self不是关键词,你可以定义成a或b或其它名字都可以,但是约定成俗,不要搞另类,大家会不明白的。下例中将self改为myname一样没有错误:[root@            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-08-03 19:48:13
                            
                                1185阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            1. self代表类的实例,而非类 class Test: def prt(self): print(self) print(self.__class__) t = Test() t.prt() <__main__.Test object at 0x000002345ED1DFC8> <class  ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-04 15:20:00
                            
                                161阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            首先明确的是self只有在类的方法中才会有,独立的函数或方法是不必带有self的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。 __init__中self有一部分是从外面传来的参数,需要实例化时就传入 类中self带的参数相当于类的属性,没带的是局部变量,可能是类的局部变量,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-08-16 21:00:00
                            
                                264阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            # Python中的self关键字
## 简介
在Python中,self是一个特殊的关键字,它表示类的实例对象本身。通过使用self关键字,我们可以在类中访问实例对象的属性和方法。
## 为什么需要self关键字?
在理解self关键字之前,我们需要先了解Python中的类和对象的概念。
类是一种用户自定义的数据类型,用于表示具有相似属性和方法的对象的集合。对象是类的实例,它包含了类定            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-28 08:05:47
                            
                                152阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Python for-in self
## 1. 概述
首先,让我们来了解一下整个过程的流程。在Python中,使用`for-in`循环来遍历一个可迭代对象中的元素是非常常见的操作。而当我们想要在循环内部访问当前元素本身时,可以使用关键字`self`来引用当前元素。
下面是整个过程的流程图:
```mermaid
pie
title "Python for-in self"
"开始" :            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-30 11:34:04
                            
                                205阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最近在学习Python的过程中一直发现一个问题,就是在从网上看别人写的一些实例或者一些开源项目的时候,发现一个问题。在调用一个类或者一个类方法的时候,总是提示缺少传递的参数。自己写了一个简单的类似问题,如下:class Add():
    def add(self):
        return None
if __name__ == '__main__':
    print(Add.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-27 13:55:38
                            
                                204阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            python self
		
		
		
							
							
							class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
st=Student('lg',99)
print(st.n...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-01-13 00:00:53
                            
                                86阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最近在看python的一些代码,学习并且要掌握这些在短期内还是有一点难度的,日积月累,浮躁是个大问题。对于一个基本没从事过开发的我来说,看到python self这个值的时候很不理解,也不知道它的含义是什么,后面经查阅相关资料才得以弄明白。
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Pytho            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-01-25 10:17:46
                            
                                2677阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            特殊参数self的作用:self会接收实例化过程中传入的数据,当实例对象创建后,实例便会代替 self,在代码中运行。self代表的是类的实例本身,方便数据的流转。对此,我们需要记住两点:第一点:只要在类中用def创建方法时,就必须把第一个参数位置留给 self,并在调用方法时忽略它(不用给self传参)。第二点:当在类的方法内部想调用类属性或其他方法时,就要采用self.属性名或self.方法名            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-03 20:26:16
                            
                                217阅读