日期: 2022-09-21 05:36:45 浏览数:6

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
凉山网页设计-高端网站设计公司

def __iadd__(self,other):
"""复合赋值算数运算符的重载
主要用于列表,例如L1+=L2,默认情况下调用__add__,会生成一个新的列表,
当数据过大的时候会影响效率,而此函数可以重载+=,使L2直接增加到L1后面
"""
if other.__class__ is Vector:
return Vector(self.a + other.a, self.b + other.b)
elif other.__class__ is int:
return Vector(self.a+other,self.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)
print (v1+5)
print (6+v2)
chise
chise
531***371@qq.com
4年前 (2018-08-30)
FS
429***f0967@qq.com
483
FS
FS
429***f0967@qq.com
4年前 (2018-11-22)
像是一个菜鸟
141***0013@qq.com
106
关于 __name__
首先需要了解 __name__ 是属于 python 中的内置类属性,就是它会天生就存在于一个 python 程序中,代表对应程序名称。
比如所示的一段代码里面(这个脚本命名为 pcRequests.py),我只设了一个函数,但是并没有地方运行它,所以当 run 了这一段代码之后我们有会发现这个函数并没有被调用。但是当我们在运行这个代码时这个代码的 __name__ 的值为 __main__ (一段程序作为主线运行程序时其内置名称就是 __main__)。
import requests
class requests(object):
def __init__(self,url):
self.url=url
self.result=self.getHTMLText(self.url)
def getHTMLText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
return "This is a error."
print(__name__)
结果:
__main__
Process finished with exit code 0
当这个 pcRequests.py 作为模块被调用时,则它的 __name__ 就是它自己的名字:
import pcRequestspcRequestsc=pcRequestsc.__name__
结果:
凉山网页设计-高端网站设计公司
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
相当于以前的:
JasinChen
402***306@qq.com
selfeasy
ZLT***lfeasy@qq.com
Python3 中类的静态方法、普通方法、类方法
静态方法: 用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用。
普通方法: 默认有个self参数,且只能被对象调用。
类方法: 默认有个 cls 参数,可以被类和对象调用,需要加上 @classmethod 装饰器。
class Classname: @staticmethod def fun(): print('静态方法') @classmethod def a(cls): print('类方法') # 普通方法 def b(self): print('普通方法')Classname.fun()Classname.a()C = Classname()C.fun()C.a()C.b()selfeasy
ZLT***lfeasy@qq.com
chise
531***371@qq.com
反向运算符重载:
复合重载运算符:
运算符重载的时候:
#!/usr/bin/python3class Vector: def __init__(self, a, b): self.a = a self.b = b def __str__(self): return 'Vector (%d, %d)' % (self.a, self.b) def __repr__(self): return 'Vector (%d, %d)' % (self.a, self.b) def __add__(self,other): if other.__class__ is Vector: return Vector(self.a + other.a, self.b + other.b) elif other.__class__ is int: return Vector(self.a+other,self.b) def __radd__(self,other): """反向算术运算符的重载 __add__运算符重载可以保证V+int的情况下不会报错,但是反过来int+V就会报错,通过反向运算符重载可以解决此问题 """ if other.__class__ is int or other.__class__ is float: return Vector(self.a+other,self.b) else: raise ValueError("值错误") def __iadd__(self,other): """复合赋值算数运算符的重载 主要用于列表,例如L1+=L2,默认情况下调用__add__,会生成一个新的列表, 当数据过大的时候会影响效率,而此函数可以重载+=,使L2直接增加到L1后面 """ if other.__class__ is Vector: return Vector(self.a + other.a, self.b + other.b) elif other.__class__ is int:__iadd__: 加运算
__isub__: 减运算
__imul__: 乘运算
__idiv__: 除运算
__imod__: 求余运算
__ipow__: 乘方
__radd__: 加运算
__rsub__: 减运算
__rmul__: 乘运算
__rdiv__: 除运算
__rmod__: 求余运算
__rpow__: 乘方