详解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+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
python三引号输出方法
Feb 27 Python
通过PYTHON来实现图像分割详解
Jun 26 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
Python使用type动态创建类操作示例
Feb 29 Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 Python
python中time.ctime()实例用法
Feb 03 Python
pytorch实现线性回归以及多元回归
Apr 11 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接口中interface存在的意义
2013/06/27 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
php日历制作代码分享
2014/01/20 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
资源环境与城市管理专业推荐信
2013/11/30 职场文书
售后主管岗位职责
2013/12/08 职场文书
新教师岗前培训方案
2014/06/05 职场文书
日语系毕业求职信
2014/07/27 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
个人总结与自我评价
2014/09/18 职场文书
后勤工作个人总结
2015/02/28 职场文书
看雷锋电影观后感
2015/06/10 职场文书
教师研修随笔感言
2015/11/18 职场文书
团支部书记竞选稿
2015/11/21 职场文书