【Python】self的用法扫盲,pythonself扫盲,在Python中,我
【Python】self的用法扫盲,pythonself扫盲,在Python中,我
在Python中,我们有两个重要的概念:类与实例
例如:我们在现实生活中人就是一个类,实例就是具体到某一个男人(张三、李四等)
1.类:定义人这个类
class People(object):pass
2.实例:创建实例是通过类名+()实现
people1 = People()
3.类就像一个模板一样,我们现在在这个模板上加一些属性:age,name,使用内置方法__init__方法
class People(object):def __init__(self,name,age):self.name = nameself.age = age
说明:①__init__方法的第一个参数永远是self,表示创建的类实例本身,在__init__内部就可以把各种属性都绑定到self,self就指向创建的实例本身 ②有了__init__方法就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传入
#-*- coding:utf-8 -*-class People(object):def __init__(self,name,age):self.name = nameself.age = agepeople1 = People(‘Jack‘,23)print(people1.name)#运行结果:Jackprint(people1.age)#运行结果:23
这里的self是指类本身,self.name就是类People的属性变量,是People所有。name是外部传来的参数,不是People自带的。self.name = name的意思是把外部传来的参数赋给People自己的属性变量self.name
4.在类中定义函数时,第一参数永远是类的本身实例变量self,传递参数时不需要传递该参数
5.类实例本身就有这些数据,那么要访问这些数据,就没必要从外部访问,直接在类中定义访问数据的函数,这样,就可以把数据“封装”起来
#-*- coding:utf-8 -*-class People(object):def __init__(self,name,age):self.name = nameself.age = agedef print_age(self):print("%s:%s" %(self.name,self.age))people1 = People(‘Jack‘,23)people1.print_age()#运行结果:Jack:23这些逻辑被封装起来了,调用起来相对容易些,但却不知道内部实现的细节。
6.如果要让内部属性不被外部访问,那么只需要加两个下划线,就变成了私有变量,只有内部可以访问,外部无法访问。
#-*- coding:utf-8 -*-class People(object):def __init__(self,name,age):self.__name = nameself.__age = agedef print_age(self):print("%s:%s" %(self.__name,self.__age))people1 = People(‘Jack‘,23)people1.print_age()#运行结果:Jack:23使用外部访问试试
#-*- coding:utf-8 -*-class People(object):def __init__(self,name,age):self.__name = nameself.__age = agedef print_age(self):print("%s:%s" %(self.__name,self.__age))people1 = People(‘Jack‘,23)people1.name#报错:‘People‘ object has no attribute ‘name‘people1.__name#报错:‘People‘ object has no attribute ‘__name‘
【Python】self的用法扫盲
相关内容
- Python 可视化TVTK CubeSource管线初使用,tvtkcubesource,
- Python3中定义一个单向链表,python3定义,链表是由节点构
- python学习(二十八)URL编码和解码&签名规则需求
- python出现关于模块(i18n)的不能使用的解决方法,py
- [OpenCV-Python] OpenCV 中计算摄影学 部分 IX 对象检测 部分
- 泰坦尼克号生存预测(python),泰坦尼克号python,1 数据
- Python:你应该知道这些,Python:,1. Python的
- python 读取文件第一列 空格隔开的数据,,file=open(
- Mac配置eclipse+pydev+Python遇到的问题,eclipsepydev,最近在研
- 分享《Python基础教程(第3版)》(高清中文版PDF+高清
评论关闭