内容简介:在类里定义函数时的self参数,其实是方法和函数的区别。在类里定义方法时,一般都在方法里加一个默认的参数,可以是,a,c,d的。但是约定俗成就统一叫self。self表示的是这个类的当前实例,一个类有多个实例,那么它属于自己所属于的实例,不会存在实例宁缺的self会指向实例陈皮皮。这里比价特别的是,可以把一个普通函数绑定到方法上使用,普通函数是没有self的,看下面代码,
在类里定义函数时的self参数,其实是方法和函数的区别。在类里定义方法时,一般都在方法里加一个默认的参数,可以是,a,c,d的。但是约定俗成就统一叫self。self表示的是
这个类的当前实例,一个类有多个实例,那么它属于自己所属于的实例,不会存在实例宁缺的self会指向实例陈皮皮。
这里比价特别的是,可以把一个普通函数绑定到方法上使用,普通函数是没有self的,看下面代码,
class myClass: def myMethod(self): print('这是我的一个方法,没毛病') def myMethod2(): print('这不是我的一个方法,我也懵了...') instance=myClass() instance.myMethod() instance.myMethod=myMethod2 instance.myMethod()
输出
这是我的一个方法,没毛病 这不是我的一个方法,我也懵了...
这里的sefl参数不依赖于调用方法的方式。
class bird: song='快黄快割!' def sing(self): print(self.song) abird= bird() abird.sing() birdsong=abird.sing birdsong()
输出
快黄快割! 快黄快割!
变量birdsong引用了绑定方法abird.sing上,访问birdsong还是会对self参数进行访问。
我们在学习类的时候,有一个概念,私有和公有。私有的元素(包括字段,方法)只能在类的内部访问,公有的元素才可以被其他类调用。一般一个类中如果提供给其他类访问的属性,
都会对该属性提供get和set方法,通过他们修改自己的元素。
比如,
class Person: last_name='小白' def setName(self,value): self.last_name=value def getName(self): return self.last_name xiaoLi =Person() print(xiaoLi.last_name) #错误调用 xiaoLi.last_name='小李' print(xiaoLi.getName()) #推荐调用 xiaoLi.setName('小李(正宗的)') print(xiaoLi.getName())
输出
小白 小李 小李(正宗的)
比如下面的方法,希望_inaccessible不能让外面的类访问到。如果外面的类访问,我提供accessible给他们调用。那么怎么办?
class Secretive: def _inaccessible(self): print('秘密,不能看') def accessible(self): print('秘密的内容是:') self._inaccessible() s1= Secretive() s1._inaccessible() s1.accessible()
输出
秘密,不能看 秘密的内容是: 秘密,不能看
其实只要将不想被别人访问的方法置为私有即可,在 Python 中对方法前加两个下划线,就将方法置为私有了,如下面操作。
class Secretive2: def __inaccessible(self): print('秘密,不能看(我是私有方法啦)') def accessible(self): print('秘密的内容是:') self.__inaccessible() s2= Secretive2() #s2.__inaccessible() s2.accessible()
这样,如果访问__inaccessible,会报如下异常。
Traceback (most recent call last): File "D:/work/Python/Class2.py", line 70, in <module> s2.__inaccessible() AttributeError: 'Secretive2' object has no attribute '__inaccessible'
访问accessible,可以正常输出如下,
秘密的内容是: 秘密,不能看(我是私有方法啦)
工程文件下载: https://download.csdn.net/download/yysyangyangyangshan/10777216
以上所述就是小编给大家介绍的《少说话多写代码之Python学习040——类02(类的函数和方法 )》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 少说话多写代码之Python学习046——类的成员(构造函数)
- 少说话多写代码之Python学习048——类的成员(supper函数)
- 少说话多写代码之Python学习049——类的成员(property函数)
- 少说话多写代码之Python学习047——类的成员(调用父类构造函数)
- H5说话气泡点击动画
- 测试怎么做,成本来说话
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。