详解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处理按钮消息的实例详解
Jul 11 Python
用Python写王者荣耀刷金币脚本
Dec 21 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
Python的iOS自动化打包实例代码
Nov 22 Python
python实现石头剪刀布程序
Jan 20 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
如何通过python检查文件是否被占用
Dec 18 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
php中动态变量用法实例
2015/06/10 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
Sanic框架流式传输操作示例
2018/07/18 Python
python实现手机销售管理系统
2019/03/19 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
演讲稿怎么写才完美
2014/01/02 职场文书
迎接领导欢迎词
2014/01/11 职场文书
邮政员工辞职信
2014/01/16 职场文书
捐款倡议书范文
2014/02/02 职场文书
购房意向书
2014/04/01 职场文书
初中学校军训方案
2014/05/09 职场文书
应聘护士求职信
2014/07/21 职场文书
2014年实习生工作总结
2014/11/27 职场文书
老公出轨后的保证书
2015/05/08 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python