内容简介:在类里定义函数时的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说话气泡点击动画
- 测试怎么做,成本来说话
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python Algorithms
Magnus Lie Hetland / Apress / 2010-11-24 / USD 49.99
Python Algorithms explains the Python approach to algorithm analysis and design. Written by Magnus Lie Hetland, author of Beginning Python, this book is sharply focused on classical algorithms, but it......一起来看看 《Python Algorithms》 这本书的介绍吧!