详解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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
python保存log日志,实现用log日志画图
Dec 24 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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 采集心得技巧
2009/05/15 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
2009/09/09 Javascript
使用JavaScript动态设置样式实现代码(2)
2013/01/25 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
Vue.directive使用注意(小结)
2018/08/31 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
python奇偶行分开存储实现代码
2018/03/19 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
如何利用python进行时间序列分析
2020/08/04 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2016年端午节寄语
2015/12/04 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
python实现简单聊天功能
2021/07/07 Python