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

建设局网站公告北京网站设计公司哪家公司好

建设局网站公告,北京网站设计公司哪家公司好,网站的成功案例,快递企业网站建设设计方案范例python特殊方法(magic方法也叫魔术方法) 魔法方法是python的内置函数,一般以双下划线开头和结尾, 构造和初始化 每个人都知道一个最基本的魔术方法, init 。 通过此方法我们可以定义一个对象的初始操作。 然而,当我调用 x S…

python特殊方法(magic方法也叫魔术方法)

魔法方法是python的内置函数,一般以双下划线开头和结尾,

构造和初始化

每个人都知道一个最基本的魔术方法, init 。

通过此方法我们可以定义一个对象的初始操作。

然而,当我调用 x = SomeClass() 的时候, init 并不是第一个被调用的方法。

实际上,还有一个叫做 new 的方法,来构造这个实例。

然后给在开始创建时候的初始化函数来传递参数。

在对象生命周期的另一端,也有一个 del 方法。我们现在来近距离的看一看这三个方法:

new(cls, [...) new 是在一个对象实例化的时候所调用的第一个方法。它的第一个参数是这个类,其他的参数是用来直接传递给 init 方法。 new 方法相当不常用,但是它有自己的特性,特别是当继承一个不可变的类型比如一个tuple或者string。我不希望在 new 上有太多细节,因为并不是很有用处,但是在 Python文档 中有详细的阐述。

init(self, […) 此方法为类的初始化方法。当构造函数被调用的时候的任何参数都将会传给它。(比如如果我们调用 x = SomeClass(10, 'foo')),那么 init 将会得到两个参数10和foo。 init 在Python的类定义中被广泛用到。

del(self) 如果 new 和 init 是对象的构造器的话,那么 del 就是析构器。它不实现语句 del x (以上代码将不会翻译为 x.del() )。它定义的是当一个对象进行垃圾回收时候的行为。当一个对象在删除的时需要更多的清洁工作的时候此方法会很有用,比如套接字对象或者是文件对象。注意,如果解释器退出的时候对象还存存在,就不能保证 del 能够被执行,所以 del can’t serve as a replacement for good coding practices ()~~~

放在一起的话,这里是一个 init 和 del

实际使用的例子

from os.path import joinclass FileObject:'''给文件对象进行包装从而确认在删除时文件流关闭'''def __init__(self, filepath='~', filename='sample.txt'):#读写模式打开一个文件self.file = open(join(filepath, filename), 'r+')def __del__(self):self.file.close()del self.file

name

代码入口在此——这是“if name==’main:”这条代码的意义之一。1. name的理解1.1 为什么使用name属性?Python解释器在导入模块时,会将模块中没有缩进的代码全部执行一遍(模块就是一个独立的Python文件)。开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用name属性。

当你要导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在“if name=='main':”内部。

其他方法和属性

__init__ :      构造函数,在生成对象时调用
__del__ :       析构函数,释放对象时使用
__repr__ :      打印,转换
__setitem__ :   按照索引赋值
__getitem__:    按照索引获取值
__len__:        获得长度
__cmp__:        比较运算
__call__:       调用
__add__:        加运算
__sub__:        减运算
__mul__:        乘运算
__div__:        除运算
__mod__:        求余运算
__pow__:        幂

call() 如果为一个类编写了该方法,那么在该类的实例后面加括号,可会调用这个方法。

注:构造方法的执行是由类加括号执行的,即:对象 = 类名(),而对于call() 方法,是由对象后加括号触发的,即:对象() 或者 类()()

getitem()、setitem()、delitem() 取值、赋值、删除这“三剑客”的套路,在Python中,我们已经见过很多次了,比如前面的@property装饰器。

Python中,标识符后面加圆括号,通常代表执行或调用方法的意思。而在标识符后面加中括号[],通常代表取值的意思。Python设计了getitem()、setitem()、delitem()这三个特殊成员,用于执行与中括号有关的动作。它们分别表示取值、赋值、删除数据。

http://www.yayakq.cn/news/621670/

相关文章:

  • 建设网站的报价小学生做创客大赛网站的题
  • 仿别人的网站违法嘛拓客软件
  • 大良网站设计价格钓鱼网站怎么做
  • 学做网站用什么服务器2345网址大全手机版
  • 什么管理系统好做广东工厂搜索seo
  • 引流网站建设教程深圳人才市场
  • 东圃做网站公司电脑上制作ppt的步骤
  • 电子商务网站建设答案重庆建设医院官方网站
  • 做网站准备的资料网站建设工作任务
  • 网站追踪如何做建立个公司网站
  • 网站做多少外链网站留言短信通知
  • 精美ppt模板免费下载网站建网站花钱吗
  • 努比亚网站开发文档关键词排名优化方案
  • 闸北区网站建设网设计本室内设计师网
  • 企业网站建设好的案例要做个公司网站的方案费用
  • 在线免费域名网站解析外链查询
  • 机场网站建设新建设电影院+网站
  • 网站建设销售中遇到的问题全球互联网企业排名
  • 手机怎么建立网站软件发布网站源码
  • 做中介最好用的网站网站代码管理
  • 泉州市建设工程seo网站关键词快速排名
  • 在阿里巴巴上做网站有效果吗做视频网站推广
  • 就业网站建设方案搜索引擎优化的核心本质
  • 设置网站解析辽宁建设工程信息网联合体投标
  • 网站开发需求规格说明书wordpress大商创会员
  • 网站开发公司经营范围做网站php都用什么框架
  • 网站设网站设计wordpress侧面分类插件
  • 寿县有做网站开发的吗杭州发布最新消息
  • 企业网站的建设与维护如何做一个自己的网页
  • 做钓鱼网站会被抓吗金乡县住房和城乡建设局网站