详解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 sys.path详细介绍
Oct 17 Python
python数据处理实战(必看篇)
Jun 11 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
Python requests库用法实例详解
Aug 14 Python
pyspark操作MongoDB的方法步骤
Jan 04 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
python实现七段数码管和倒计时效果
Nov 23 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
简单的命令查看安装的python版本号
Aug 28 Python
Python制作春联的示例代码
Jan 22 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字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php 深入理解strtotime函数的使用详解
2013/05/23 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php获取301跳转URL简单实例
2013/12/16 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
JS 统计时间
2021/03/09 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Python中字典和集合学习小结
2017/07/07 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
卫校中专生个人自我评价
2013/09/19 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
初级会计求职信范文
2014/02/15 职场文书
超越自我演讲稿
2014/05/21 职场文书
周年庆典答谢词
2015/01/20 职场文书
Python基础之pandas数据合并
2021/04/27 Python
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python