详解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利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
在PyCharm下使用 ipython 交互式编程的方法
Jan 17 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
如何基于Python Matplotlib实现网格动画
Jul 20 Python
如何用 Python 制作一个迷宫游戏
Feb 25 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 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
COM in PHP (winows only)
2006/10/09 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
Python  连接字符串(join %)
2008/09/06 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python实现log日志的示例代码
2018/04/28 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
python实现一个简单的ping工具方法
2019/01/31 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
Python json解析库jsonpath原理及使用示例
2020/11/25 Python
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
经典C++面试题一
2016/11/06 面试题
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
同学聚会感言一句话
2015/07/30 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
SQL SERVER存储过程用法详解
2022/02/24 SQL Server
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技