详解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中操作时间之mktime()方法的使用教程
May 22 Python
Python使用minidom读写xml的方法
Jun 03 Python
Python中datetime常用时间处理方法
Jun 15 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 Python
python保存文件方法小结
Jul 27 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 Python
Python OpenCV形态学运算示例详解
Apr 07 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 Token(令牌)设计
2008/03/15 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
jquery连缀语法如何实现
2012/11/29 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
angularjs下拉框空白的解决办法
2017/06/20 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
python实现2014火车票查询代码分享
2014/01/10 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
python中requests和https使用简单示例
2018/01/18 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python如何读写csv数据
2018/03/21 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
留学推荐信范文
2014/05/10 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
MySQL 数据库范式化设计理论
2022/04/22 MySQL