详解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 相关文章推荐
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
python简单实现刷新智联简历
Mar 30 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
django 外键model的互相读取方法
Dec 15 Python
Python匿名函数及应用示例
Apr 09 Python
python numpy数组复制使用实例解析
Jan 10 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
python连接mongodb集群方法详解
Feb 13 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
python 如何在测试中使用 Mock
Mar 01 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版
2006/10/09 PHP
实用函数2
2007/11/08 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
javascript引用对象的方法
2007/01/11 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
使用Python操作excel文件的实例代码
2017/10/15 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
html5唤起app的方法
2017/11/30 HTML / CSS
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
感情真挚的毕业生求职信
2014/07/19 职场文书
2014年销售部工作总结
2014/12/01 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
python代码实现备忘录案例讲解
2021/07/26 Python