详解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的汉字转GBK码实现代码
Feb 19 Python
Python中实现两个字典(dict)合并的方法
Sep 23 Python
全面了解python字符串和字典
Jul 07 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
Python使用python-docx读写word文档
Aug 26 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
基于python实现文件加密功能
Jan 06 Python
利用python画出AUC曲线的实例
Feb 28 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python定义一个函数的方法
Jun 15 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/08/13 PHP
PHP+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
PHP常用技巧汇总
2016/03/04 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
微信小程序使用component自定义toast弹窗效果
2018/11/27 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
Python实现可自定义大小的截屏功能
2018/01/20 Python
Python之reload流程实例代码解析
2018/01/29 Python
Django中的Model操作表的实现
2018/07/24 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
团日活动总结范文
2014/04/25 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
道歉情书大全
2015/05/12 职场文书
金砖之国观后感
2015/06/11 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis