详解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 类与元类的深度挖掘 II【经验】
May 06 Python
python subprocess 杀掉全部派生的子进程方法
Jan 16 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
python+numpy按行求一个二维数组的最大值方法
Jul 09 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
使用Python实现画一个中国地图
Nov 23 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
matplotlib自定义鼠标光标坐标格式的实现
Jan 08 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
如何在Python中妥善使用进度条详解
Apr 05 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
国内咖啡文化
2021/03/03 咖啡文化
一篇入门的php Class 文章
2007/04/04 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
phpStorm2020 注册码
2020/09/17 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
最大K个数问题的Python版解法总结
2016/06/16 Python
Python内置模块logging用法实例分析
2018/02/12 Python
对python Tkinter Text的用法详解
2018/10/11 Python
python3下pygame如何实现显示中文
2020/01/11 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python几种常见算法汇总
2020/06/02 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
财务管理专业毕业生求职信范文
2013/09/21 职场文书
副总经理岗位职责
2014/03/16 职场文书
保护环境倡议书
2014/04/14 职场文书
小组口号大全
2014/06/09 职场文书
机关作风建设整改方案
2014/10/27 职场文书
公司股东出资证明书
2014/11/01 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
铁路安全反思材料
2014/12/24 职场文书
会议通知
2015/04/15 职场文书