当前位置: 首页 > news >正文

建立网站的流程是什么免费域名注册网站源码

建立网站的流程是什么,免费域名注册网站源码,屏显的企业网站应该怎么做,jsp网站建设项目实战一、概述 一直搞不懂python类实例化后内部的函数是怎么自动执行的#xff0c;原来是通过自定义的魔术方法#xff08;magic method#xff09;自动执行 二、魔术方法 2.1什么是魔术方法 在python声明的Class中#xff0c;凡是以双__下划线命名的函数#…一、概述 一直搞不懂python类实例化后内部的函数是怎么自动执行的原来是通过自定义的魔术方法magic method自动执行 二、魔术方法 2.1什么是魔术方法 在python声明的Class中凡是以双__下划线命名的函数如__class__均为魔术方法magic method。魔术方法是一种特殊的方法无需实例化通过对象后调用某些魔术方法在实例化对象的时自动执行。 魔术方法在类或对象的某些事件出发后会自动执行让类具有神奇的“魔力”。如果希望根据自己的程序定制自己特殊功能的类那么就需要对这些方法进行重写。 Python中常用的运算符、for循环、以及类操作等都是运行在魔术方法之上的。 2.2举例应用 2.2.1魔术方法__init__、__new__、__del__的应用 class People(object):# 创建对象def __new__(cls, *args, **kwargs):print(触发了构造方法)ret super().__new__(cls) # 调用父类的__new__()方法创建对象return ret ## 将对象返# 实例化对象def __init__(self, name, age):self.name nameself.age ageprint(初始化方法)# 删除对象# del 对象名或者程序执行结束之后def __del__(self):print(析构方法删除对象)if __name__ __main__:p1 People(xiaoming, 16) 输出 触发了构造方法 初始化方法 析构方法删除对象 2.2.2使用__call__方法实现斐波那契数列 # 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13 # 特别指出第0项是0第1项是第一个1。从第三项开始每一项都等于前两项之和。 class Fib(object):def __init__(self):passdef __call__(self,num):a,b 0,1;self.l[]for i in range (num):self.l.append(a)a,b b,abreturn self.ldef __str__(self):return str(self.l)__rept____str__f Fib() print(f(10)) 输出 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 2.3 常用的魔术方法 1.初始化方法__init__ 触发机制实例化对象之后立即触发 参数至少有一个self接收当前对象其他参数根据需要进行定义 返回值无 作用初始化对象的成员 2.构造方法__new__ 触发时机 实例化对象时自动触发在__init__之前触发 参数至少一个cls 接收当前类其他参数根据初始化方法参数决定 返回值必须返回一个对象实例没有返回值则实例化对象的结果为None 作用实例化对象 注意实例化对象是Object类底层实现其他类继承了Object的__new__才能够实现实例化对象。 3.析构方法__del__ 触发时机当该类对象被销毁时自动触发 参数一个self接受当前对象 返回值无 作用关闭或释放对象创建时资源 注意del不一定会触发当前方法只有当前对象没有任何变量引用时才会触发 4.__call__ 调用对象的魔术方法 触发时机:将对象当作函数调用时触发,方式 对象() 参数:至少一个self接收对象其余根据调用时参数决定 返回值根据情况而定 作用可以将复杂的步骤进行合并操作减少调用的步骤方便使用 注意无 5.__len__ 触发时机使用len(对象) 的时候触发 参数一个参数self 返回值必须是一个整型 作用可以设置为检测对象成员个数但是也可以进行其他任意操作 注意返回值必须必须是整数否则语法报错另外该要求是格式要求。 6.__str__ 触发时机:使用print(对象)或者str(对象)的时候触发 参数一个self接收对象 返回值必须是字符串类型 作用print对象时进行操作得到字符串通常用于快捷操作 注意无 7.__repr__ 触发时机:在使用repr(对象)的时候触发 参数一个self接收对象 返回值必须是字符串 作用将对象转使用repr化为字符串时使用也可以用于快捷操作 8.__bool__ 触发时机: 使用bool(对象)的时候触发 参数一个self接收对象 返回值必须是布尔值 作用根据实际情况决定可以作为快捷方式使用 注意:仅适合于返回布尔值的操作 9.__format__ 触发时机使用字符串.format(对象)时候触发 参数一个self接收对象一个参数接收format的{}中的格式例如:5 返回值:必须是字符串 作用设置对象可以作为format的参数并且自定义对象格式化的规则 注意无 与属性操作相关的魔术方法 1.__getattr__ 触发时机获取不存在的对象成员时触发 参数一个是接收当前对象的self一个是获取成员名称的字符串 返回值必须有值 作用:为访问不存在的属性设置值 注意getattribute无论何时都会在getattr之前触发触发了getattribute就不会在触发getattr了 2.__setattr__ 触发时机:设置对象成员值的时候触发 参数:1个当前对象的self,一个是要设置的成员名称字符串,一个是要设置的值 返回值:无 过程操作 作用:接管设置操作,可以在设置前之前进行判断验证等行为 注意:在当前方法中无法使用成员值的方式直接设置成员否则会无限递归必须借助object的设置方法来完成object.__setattr__参数1参数2参数3 3.__delattr__ 触发时机删除对象成员时触发 参数一个当前对象的self 返回值无 作用:可以在删除成员时进行验证。 4.__getattribute__ 触发时机使用对象成员时触发无论成员是否存在 参数1个接收当前对象self一个是获取的成员的名称字符串 返回值必须有 作用在具有封装操作私有化时为程序开部分访问权限使用 5.__dir__ 触发时机dir对象的时候触发 参数:1个接收当前对象self 返回值必须为序列类型列表元组集合等 作用可以自定义成员列表的返回值 比较运算相关魔术方法 __ lt__(self, other) 定义小于号的行为x y 调用 x.lt(y) __ le__(self, other) 定义小于等于号的行为x y 调用 x.le(y) __ eq__(self, other) 定义等于号的行为x y 调用 x.eq(y) __ ne__(self, other) 定义不等号的行为x ! y 调用 x.ne(y) __ gt__(self, other) 定义大于号的行为x y 调用 x.**gt(y) __ ge__(self, other) 定义大于等于号的行为x y 调用 x.ge(y) 算术运算相关魔术方法 __add__(self, other) 定义加法的行为 __sub__(self, other) 定义减法的行为- __mul__(self, other) 定义乘法的行为* __truediv__(self, other) 定义真除法的行为/ __floordiv__(self, other) 定义整数除法的行为// __mod__(self, other) 定义取模算法的行为% __divmod__(self, other) 定义当被 divmod() 调用时的行为 __pow__(self, other[, modulo]) 定义当被 power() 调用或 ** 运算时的行为 __lshift__(self, other) 定义按位左移位的行为 __rshift__(self, other) 定义按位右移位的行为 __and__(self, other) 定义按位与操作的行为 __xor__(self, other) 定义按位异或操作的行为^ __or__(self, other) 定义按位或操作的行为| 赋值运算相关魔术方法 __iadd__(self, other) 定义赋值加法的行为 __isub__(self, other) 定义赋值减法的行为- __imul__(self, other) 定义赋值乘法的行为 __itruediv__(self, other) 定义赋值真除法的行为/ __ifloordiv__(self, other) 定义赋值整数除法的行为// __imod__(self, other) 定义赋值取模算法的行为% __ipow__(self, other[, modulo]) 定义赋值幂运算的行为** __ilshift__(self, other) 定义赋值按位左移位的行为 __irshift__(self, other) 定义赋值按位右移位的行为 __iand__(self, other) 定义赋值按位与操作的行为 __ixor__(self, other) 定义赋值按位异或操作的行为^ __ior__(self, other) 定义赋值按位或操作的行为| 一元运算相关魔术方法 __pos__(self) 定义正号的行为x __neg__(self) 定义负号的行为-x __abs__(self) 定义当被 abs() 调用时的行为 __invert__(self) 定义按位求反的行为~x 类型转换相关魔术方法 __complex__(self) 定义当被 complex() 调用时的行为需要返回恰当的值 __int__(self) 定义当被 int() 调用时的行为需要返回恰当的值 __float__(self) 定义当被 float() 调用时的行为需要返回恰当的值 __round__(self[, n]) 定义当被 round() 调用时的行为需要返回恰当的值 __index(self)__ 1. 当对象是被应用在切片表达式中时实现整形强制转换2. 如果你定义了一个可能在切片时用到的定制的数值型,你应该定义 index3. 如果 index 被定义则 int 也需要被定义且返回相同的值 上下文管理相关魔术方法(with) __enter__ 和 __exit__ __enter__(self)1. 定义当使用 with 语句时的初始化行为2. enter 的返回值被 with 语句的目标或者 as 后的名字绑定__exit__(self, exctype, excvalue, traceback)1. 定义当一个代码块被执行或者终止后上下文管理器应该做什么2. 一般被用来处理异常清除工作或者做一些代码块执行完毕之后的日常工作 容器类型相关魔术方法 __len__(self) 定义当被 len() 调用时的行为返回容器中元素的个数 __getitem__(self, key) 定义获取容器中指定元素的行为相当于 self[key] __setitem__(self, key, value) 定义设置容器中指定元素的行为相当于 self[key] value __delitem__(self, key) 定义删除容器中指定元素的行为相当于 del self[key] __iter__(self) 定义当迭代容器中的元素的行为 __reversed__(self) 定义当被 reversed() 调用时的行为 __contains__(self, item) 定义当使用成员测试运算符in 或 not in时的行为关于python魔术方法的知识掌握这么多基本就够用了这里给大家推荐一个评价不错的python课程希望对大家有所帮助。 三、参考
http://wiki.neutronadmin.com/news/360513/

相关文章:

  • 网站header设计地方网站优势
  • 烟台企业网站建设公司国家外汇管理局网站怎么做报告
  • 网站开发了下载文件需要南宁建筑规划设计集团有限公司
  • 全球电子商务网广州seo优化外包公司
  • 哈尔滨快速建站专业定制关键词组合工具
  • seo技术网站建设如何开发一个app软件
  • 网站建设选哪家跨境电商推广平台
  • 服务器怎么用数据库建设网站wordpress站群作用
  • 政务服务 网站 建设方案wordpress简约灯箱
  • 创建网站数据库十档行情免费网站
  • 网站后端建设网站建设销售话
  • 电子商务网站建设实训方案县级部门和乡镇不能建网站建设
  • 做网站运营的女生多吗温州百度快速排名优化
  • 太原制作网站的公司网站鼓楼公司网站建设费用
  • 做销售用什么网站好wordpress小米商城主题
  • 网站建设 技术建设个人商城网站
  • 旅游网站建设的功能徐州百度搜索优化
  • 厦门网站建设推荐网络维护员是干什么的
  • 个人想做企业网站备案商城网站开发需求
  • 个人备案网站可以做商城吗网络推广100种方法网络推广渠道有哪些
  • 景安网站备案表格莱芜金点子信息港二手市场
  • 建设一个自己的网站丹灶网站制作
  • 做logo的网站互联网营销师是什么
  • 查公司资质在哪个网站河北网站开发价格
  • 网站网页设计哪个好网站建设销售总结
  • 用什么网站可以做镇江网站建设方案
  • 广东专业移动网站建设哪家好动漫制作好找工作吗
  • 跨越网站建设科技有限公司app成本
  • wordpress 安装问题网站建设布局利于优化
  • 建设定制网站wordpress首页调用所有分类