Python中self的用法
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。
在python中,类是通过关键字 class 定义的:
1、class 后面紧跟类名,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用 object 类,这是所有类最终都会继承的类。
class Person(object): pass
2、将 Person类实例化,创建实例化是通过 类名+() 实现的。
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333
'''class Person(object): pass
student = Person() # 创建类的实例化
print(student)
print(Person)
3、给实例变量绑定属性
比如:为 student 绑定 name 和 sex属性
class Person(object): pass
student = Person()
# print(student)
# print(Person)
student.name = "Gavin" # 为实例变量 student 绑定 name 属性,类似于赋值操作
student.sex = 男 # 为其绑定 score 属性
print(student.name)
print(student.sex)
上述的方法虽然可以为类的实例变量绑定属性,但是不够方便。
由于类 可以起到模板的作用,所以在创建实例的时候,可以将我们认为必须绑定得属性强制填写进去,在python中,是通过类中通常都会使用的一个方法,即def __init__(self)
方法,在创建实例变量的时候,就把 name 和 sex等属性绑上去。
class Person(object): def __init__(self,name,sex): self.name = name self.sex = sex
student = Person('Gavin',男) # 传入 __init__ 方法中需要的参数
print(student.name)
print(student.sex)
传入空参数的情况,会报错:
'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333
'''class Person(object): def __init__(self,name,score): self.name = name self.sex = sex
student = Person() # 此处应该有参数传入,却没有传
print(student.name)
print(student.sex)
注意:
1、__init__
方法的第一个参数永远是 self ,表示创建的实例本身,因此,在 __init__
方法的内部,就可以把各种属性绑定到 self,因为 self 就指向创建的实例本身。
2、使用了 __init__
方法,在创建实例的时候就不能传入 空的参数了,必须传入与 __init__
方法匹配的参数,但是 self 不需要传,python解释器会自己把实例变量传进去。
class Person(object): def __init__(self,x,y): self.x = x self.y = y def add(self): sum = self.x + self.y return sum def square(self): squr = pow(self.x,2)+pow(self.y,2) return squr def add_square(self): c = self.add()+self.square() return c
student = Person(3,4)
print(student.add())
print(student.square())
print(student.add_square())
运行结果:
通过上述的例子可以看出,与普通的函数相比,在类中定义的函数只有两点不同:
1、第一个参数永远是 self ,并且调用时不用传递该参数
2、在类中函数相互调用要加 self ,如上例中: c = self.add()+self.square(), 不加 self ,会报错
Python中self的用法相关推荐
- 五分钟理解yield在python中的简单用法,让你不再迷惑
很多同学无论是在学习python还是使用python的过程中,都会遇到yield关键字,这个让人头大的问题,今天,就给大家分享一下我自学yield的心路历程 基本概念: (1)在 Python 中,使 ...
- format函数python的顺序_[转载] Python中format函数用法
Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...
- python代码大全表解释-python中的字典用法大全的代码
如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_CATE ...
- python教程实例-Python中函数的用法实例教程
本文以数值计算为例讲述了Python中函数的用法,分享给大家供大家参考借鉴之用.具体如下: 我们都知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需 ...
- 详解python中的用法_详解python中*号的用法
1.表示乘号 2.表示倍数,例如: def T(msg,time=1): print((msg+' ')*time) T('hi',3) 打印结果(打印3次): hi hi hi 3.单个 * (1) ...
- python中 str.strip()用法
python中 str.strip()用法 1.描述 str.strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列. (即可以去除特殊字符串) 注意:该方法只能删除开头或是 ...
- Python中的del用法
python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题. python的del不同于C的free和C++的delete. 由于pyth ...
- python中的super用法详解_【Python】【类】super用法详解
一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...
- python中argv的用法
python中argv的用法 sys.argv可以用来获取命令行参数,其中sys.argv[0]为脚本名,即python文件名,列表中的其他值为传入的参数值,一般定义方式为 script, arg1, ...
- python中max函数用法_Python中max函数用法实例分析
Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...
最新文章
- JS 函数 函数递归
- Arduino 各种模块篇 光敏感应器 简易光敏
- python语言由ps f组织所有_python面试题100.docx
- Linux01-Linux高级特殊权限SUID详解25
- shell中获取单个文件大小
- C语言基础(6)-char类型
- windows杀死指定端口号
- python 一行_一行 Python 代码搞定炫酷可视化
- ACRush 楼天城回忆录
- python中英文字符和中文字符存储长度不同_Django如何正确截取中英混合字符串及表单中限制中文字符中长度...
- bootstrap table 搜索列formatter之后,单字节搜索异常
- 07 ansible 角色roles 整合多个剧本
- JZ1-二维数组中的查找
- c语言程序设计基础课本答案,c语言程序设计基础课后习题参考 答 案与解析.doc...
- 搜狗输入法关闭快捷键
- java实现ftp文件上传失败_用java+ftp实现文件上传的问题?
- gcc编译部分编译选项
- 使用jquery处理多选框checkbox选中和未选中的值
- 【Excel】Excel 等办公软件不能复制内容到其他区域
- 1812. 方形牧场
热门文章
- Java集成PageOffice在线打开编辑word文件 - Spring Boot
- ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析
- Web存储机制—sessionStorage,localStorage使用方法
- web自动化测试之百度经验-HTTP层面的Web Service自动化测试
- 关于Ubuntu 使用PPPoe拨号上网,导致wifi没有错误。
- 用rate-limit来限制特定用户的流量
- 图解Oracle 11g physical standby Rolling Upgrade物理备库滚动升级特性
- 教你9招最有效防电脑辐射方法
- python规范化字符串_python中正确的字符串编码规范
- 【ABAP】在线预览文档对象的开发实现