详解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实现的RSS阅读器实例
Jul 25 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
python使用 zip 同时迭代多个序列示例
Jul 06 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
详解django中Template语言
Feb 22 Python
Python读取JSON数据操作实例解析
May 18 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
python 基于opencv实现高斯平滑
Dec 18 Python
pandas中DataFrame检测重复值的实现
May 26 Python
基于Python实现射击小游戏的制作
Apr 06 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中使用XML
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php中的三元运算符使用说明
2011/07/03 PHP
php简单分页类实现方法
2015/02/26 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
javascript闭包入门示例
2014/04/30 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python批量转换文件编码格式
2015/05/17 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python实现控制台进度条功能
2016/01/04 Python
Python实现像awk一样分割字符串
2020/09/15 Python
HTML5 input placeholder 颜色修改示例
2014/05/30 HTML / CSS
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
英文版区域经理求职信
2013/10/23 职场文书
应届生自我鉴定
2013/12/11 职场文书
普通党员个人整改措施
2014/10/27 职场文书
共青团员自我评价
2015/03/10 职场文书
Python实现简繁体转换
2021/06/07 Python
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
golang操作rocketmq的示例代码
2022/04/06 Golang