详解Python self 参数


Posted in Python onAugust 30, 2019

1、概述

1.1 场景

我们在使用 Python 中的 方法 method 时,经常会看到 参数中带有 self,但是我们也没对这个参数进行赋值,那么这个参数到底是啥意思呢?

2、知识点

2.1 成员函数(m) 和 普通方法(f)

Python 中的 "类方法" 必须有一个额外的 第一个参数名称(名称任意,不过推荐 self),而 "普通方法"则不需要。

m、f、c 都是代码自动提示时的 左边字母(method、function、class)

# -*- coding: utf-8 -*-
class Test(object):
 def add(self, a, b):
  # 输出 a + b
  print(a + b)
 def show(self):
  # 输出 "Hello World"
  print("Hello World")

def display(a, b):
 # 输出 a * b
 print(a * b)

if __name__ == '__main__':
 test = Test()
 test.add(1, 2)
 test.show()
 display(1, 2)

2.2 类函数,静态函数

类函数一般用参数 cls

静态函数无法使用 self 或 cls

class Test(object):
 def __init__(self):
  print('我是构造函数。。。。')
 def foo(self, str):
  print(str)
 @classmethod
 def class_foo(cls, str):
  print(str)
 @staticmethod
 def static_foo(str):
  print(str)

def show(str):
 print(str)

if __name__ == '__main__':
 test = Test()
 test.foo("成员函数")
 Test.class_foo("类函数")
 Test.static_foo("静态函数")
 show("普通方法")

输出结果:

我是构造函数。。。。
成员函数
类函数
静态函数
普通方法

总结

以上所述是小编给大家介绍的Python self 参数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python中迭代器(iterator)用法实例分析
Apr 29 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
在Pandas中给多层索引降级的方法
Nov 16 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
Django 开发环境配置过程详解
Jul 18 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
pytorch 自定义参数不更新方式
Jan 06 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
Python数据分析入门之数据读取与存储
May 13 Python
Python 70行代码实现简单算式计算器解析
Aug 30 #Python
Python类中方法getitem和getattr详解
Aug 30 #Python
Python paramiko模块使用解析(实现ssh)
Aug 30 #Python
django中上传图片分页三级联动效果的实现代码
Aug 30 #Python
python实现生成Word、docx文件的方法分析
Aug 30 #Python
python解析yaml文件过程详解
Aug 30 #Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 #Python
You might like
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP双向链表定义与用法示例
2018/01/31 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
利用Python爬取可用的代理IP
2016/08/18 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python实现点云投影到平面显示
2020/01/18 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
JAVA中运算符的分类及举例
2015/09/12 面试题
团员个人的自我评价
2013/12/02 职场文书
小学班级口号
2014/06/09 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
婚礼新人答谢词
2015/01/04 职场文书
公司保密管理制度
2015/08/04 职场文书
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python
python和anaconda的区别
2022/05/06 Python