Flask接口签名sign原理与实例代码浅析
265
2022-08-31
python 面向对象之类【2】详解(python能做什么)
文章目录
1. 类的私有属性2. 类的方法
2.1 类的私有方法2.2 类的专有方法:
1. 类的私有属性
示例:
#!/usr/bin/python3 class JustCounter: __secretCount = 0 # 私有变量 publicCount = 0 # 公开变量 def count(self): self.__secretCount += 1 self.publicCount += 1 print (self.__secretCount) counter = JustCounter()counter.count()counter.count()print (counter.publicCount)print (counter.__secretCount) # 报错,实例不能访问私有变量
执行以上程序输出结果为:
122Traceback (most recent call last): File "test.py", line 16, in
2. 类的方法
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。
self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定是用 self。
2.1 类的私有方法
实例(Python 3.0+)
#!/usr/bin/python3 class Site: def __init__(self, name, url): self.name = name # public self.__url = url # private def who(self): print('name : ', self.name) print('url : ', self.__url) def __foo(self): # 私有方法 print('这是私有方法') def foo(self): # 公共方法 print('这是公共方法') self.__foo() x = Site('菜鸟教程', 'runoob.com')x.who() # 正常输出x.foo() # 正常输出x.__foo() # 报错
输出结果:
name : 菜鸟教程url : runoob.com这是公共方法这是私有方法Traceback (most recent call last): File "class5.py", line 22, in
2.2 类的专有方法:
__init__ : 构造函数,在生成对象时调用__del__ : 析构函数,释放对象时使用__repr__ : 打印,转换__setitem__ : 按照索引赋值__getitem__: 按照索引获取值__len__: 获得长度__cmp__: 比较运算__call__: 函数调用__add__: 加运算__sub__: 减运算__mul__: 乘运算__truediv__: 除运算__mod__: 求余运算__pow__: 乘方
运算符重载 Python同样支持运算符重载,我们可以对类的专有方法进行重载,实例如下:
#!/usr/bin/python3 class Vector: def __init__(self, a, b): self.a = a self.b = b def __str__(self): return 'Vector (%d, %d)' % (self.a, self.b) def __add__(self,other): return Vector(self.a + other.a, self.b + other.b) v1 = Vector(2,10)v2 = Vector(5,-2)print (v1 + v2)
以上代码执行结果如下所示:
Vector(7,8)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~