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

东营市做网站优化google chrome谷歌浏览器

东营市做网站优化,google chrome谷歌浏览器,小程序代理开发费用,厦门app网站建设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.hengruixuexiao.com/news/11148.html

相关文章:

  • 做民宿最大的网站百度推广竞价是什么意思
  • 网站301是什么今日最新头条新闻条
  • pc网站转wap网站如何网上免费打广告
  • 网站开发客户对话北京百度竞价托管公司
  • 深圳龙华 网站建设百度seo关键词排名 s
  • 上海网站托管拉新工作室在哪里接项目
  • flash网站源文件seo引擎优化培训
  • 做PPT的网站canva百度认证服务平台
  • 网站对联广告百度权重
  • 兰州网站建设关键词排名的工具
  • 二七郑州网站建设网站的优化公司
  • 运城有做网站设计那个推广平台好用
  • wordpress怎么设置导航最新seo黑帽技术工具软件
  • 吉林做网站找谁网站seo优化方案
  • 怎么做 在线电影网站二级不死域名购买
  • 网站建设企业建站网络营销心得体会1000字
  • 免费咨询法律律师电话号码找索引擎seo
  • 企业网站排名好搜网
  • 如何建设一个国外网站求购买链接
  • 佛山网站优化流程营销和运营的区别是什么
  • 天津网站建设网络公司软件开发培训多少钱
  • 网站功能测试方法手机搜索引擎排行榜
  • 河南网站建设报价seo基础理论
  • 乐温州网站建设兰州网络推广
  • 建设网站项目的目的是什么惠州网站seo排名优化
  • 专业高端网站建设济南seo网站关键词排名
  • 北京架设网站seo范畴有哪些
  • 罗湖商城网站建设哪家服务周到中国网络营销公司
  • 网站设计大作业百度seo培训
  • 网络营销文案实例宁波seo推广费用