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

网站建设毕业设计引言怎么写海外推广渠道都有哪些

网站建设毕业设计引言怎么写,海外推广渠道都有哪些,营销型网站建设 价格,网站建设目标分析1、__ new__, __ init__, __ call____ new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身__ init__(self, *args, **kwargs) 创建完对象后调用,对当前对象的实例的一些初始化&#…

1、__ new__, __ init__, __ call__

__ new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身

__ init__(self, *args, **kwargs) 创建完对象后调用,对当前对象的实例的一些初始化,无返回值,即在调用__new__之后,根据返回的实例初始化;注意,这里的第一个参数是self即对象本身

__ call__(self, *args, **kwargs) 如果类实现了这个方法,相当于把这个类型的对象当作函数来使用,相当于 重载了括号运算符

继承自object的新式类才有__ new__

__ new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供

__ new__必须要有返回值,返回实例化出来的实例,这点在自己实现_ new__时要特别注意,可以return父类__ new__出来的实例,或者直接是object的 _new__出来的实例

__ init__有一个参数self,就是这个 __ new__返回的实例,__ init__在__ new__的基础上可以完成一些其它初始化的动作,__ init__不需要返回值

若_ _new__没有正确返回当前类cls的实例,那__ init__是不会被调用的,即使是父类的实例也不行

class Foo(object):

def __init__(self, *args, **kwargs):

...

def __new__(cls, *args, **kwargs):

return object.__new__(cls, *args, **kwargs)

# 以上return等同于

# return object.__new__(Foo, *args, **kwargs)

# return Stranger.__new__(cls, *args, **kwargs)

# return Child.__new__(cls, *args, **kwargs)

class Child(Foo):

def __new__(cls, *args, **kwargs):

return object.__new__(cls, *args, **kwargs)

# 如果Child中没有定义__new__()方法,那么会自动调用其父类的__new__()方法来制造实例,即 Foo.__new__(cls, *args, **kwargs)。

# 在任何新式类的__new__()方法,不能调用自身的__new__()来制造实例,因为这会造成死循环。因此必须避免类似以下的写法:

# 在Foo中避免:return Foo.__new__(cls, *args, **kwargs)或return cls.__new__(cls, *args, **kwargs)。Child同理。

# 使用object或者没有血缘关系的新式类的__new__()是安全的,但是如果是在有继承关系的两个类之间,应避免互调造成死循环,例如:(Foo)return Child.__new__(cls), (Child)return Foo.__new__(cls)。

class Stranger(object):

...

# 在制造Stranger实例时,会自动调用 object.__new__(cls)

也可以这么调用

new_class = super(RenameMethodsBase, cls).__new__(cls, name, bases, attrs)

通常来说,新式类开始实例化时,new()方法会返回cls(cls指代当前类)的实例,然后该类的init()方法作为构造方法会接收这个实例(即self)作为自己的第一个参数,然后依次传入new()方法中接收的位置参数和命名参数。

注意:如果new()没有返回cls(即当前类)的实例,那么当前类的init()方法是不会被调用的。如果new()返回其他类(新式类或经典类均可)的实例,那么只会调用被返回的那个类的构造方法。

class Foo(object):

def __init__(self, *args, **kwargs):

...

def __new__(cls, *args, **kwargs):

return object.__new__(Stranger, *args, **kwargs)

class Stranger(object):

...

foo = Foo()

print type(foo)

# 打印的结果显示foo其实是Stranger类的实例。

# 因此可以这么描述__new__()和__ini__()的区别,在新式类中__new__()才是真正的实例化方法,为类提供外壳制造出实例框架,然后调用该框架内的构造方法__init__()使其丰满。

# 如果以建房子做比喻,__new__()方法负责开发地皮,打下地基,并将原料存放在工地。而__init__()方法负责从工地取材料建造出地皮开发招标书中规定的大楼,__init__()负责大楼的细节设计,建造,装修使其可交付给客户。

2、__ del__

它不实现语句 del x (以上代码将不会翻译为 x.__ del__() )。它定义的是当一个对象进行垃圾回收时候的行为。当一个对象在删除的时需要更多的清洁工作的时候此方法会很有用,比如套接字对象或者是文件对象。注意,如果解释器退出的时候对象还存存在,就不能保证 __ del__ 能够被执行

from os.path import join

class FileObject:

'''给文件对象进行包装从而确认在删除时文件流关闭'''

def __init__(self, filepath='~', filename='sample.txt'):

#读写模式打开一个文件

self.file = open(join(filepath, filename), 'r+')

def __del__(self):

self.file.close()

del self.file

3、用于比较的魔术方法

Python对实现对象的比较,使用魔术方法进行了大的逆转,使他们非常直观而不是笨拙的方法调用。

而且还提供了一种方法可以重写Python对对象比较的默认行为(通过引用)。以下是这些方法和他们的作用。

__cmp__(self, other) __cmp__ 是最基本的用于比较的魔术方法。它实际上实现了所有的比较符号(

如果 self < other 的话 __cmp__ 应该返回一个负数,当 self == other 的时候会返回0 ,而当 self > other 的时候会返回正数。通常最好的一种方式是去分别定义每一个比较符号而不是一次性将他们都定义。

但是 __cmp__ 方法是你想要实现所有的比较符号而一个保持清楚明白的一个好的方法。

__eq__(self, other) 定义了等号的行为, == 。

__ne__(self, other) 定义了不等号的行为, != 。

__lt__(self, other) 定义了小于号的行为, < 。

__gt__(self, other) 定义了大于等于号的行为, >= 。

class Word(str):

'''存储单词的类,定义比较单词的几种方法'''

def __new__(cls, word):

# 注意我们必须要用到__new__方法,因为str是不可变类型

# 所以我们必须在创建的时候将它初始化

if ' ' in word:

print "Value contains spaces. Truncating to first space."

word = word[:word.index(' ')] #单词是第一个空格之前的所有字符

return str.__new__(cls, word)

def __gt__(self, other):

return len(self) > len(other)

def __lt__(self, other):

return len(self) < len(other)

def __ge__(self, other):

return len(self) >= len(other)

def __le__(self, other):

return len(self) <= len(other)

http://www.lbrq.cn/news/2614825.html

相关文章:

  • 中台网站开发公司页面设计
  • 语言做网站草根seo视频大全网站
  • 做室内效果图的网站热搜榜排名今日
  • 个人域名做邮箱网站郑州网站优化培训
  • 高密做网站哪家好黑帽seo培训
  • 哪一个做网站模版好用的外链吧
  • 做电影网站考什么软件企业网络营销业务
  • b2b网站大全 黄页大全百度关键词快排
  • 电影网站建站关键词排名推广怎么做
  • 全国疫情分布图aso优化吧
  • 用ps如何做网站首页四川seo选哪家
  • 在线网站你们会回来感谢我的上海关键词优化排名哪家好
  • 网站建设方案需要哪些步骤电商网站开发平台有哪些
  • 网站适合用angular做吗企业推广方案
  • 手机做ppt苹果手机下载网站营销策略有哪些有效手段
  • 上海外贸网站制作公司南宁seo服务优化
  • 网站开发流程详细介绍软件定制开发
  • 金顺广州外贸网站建设青岛网站排名提升
  • 日本3040岁精华液排行榜上海网站seo诊断
  • 湖北企业模板建站开发湖南网站推广
  • 建设银行网站源码关键词优化工具互点
  • 类似建设b站网站韩国vs加纳分析比分
  • 武汉移动网站制作洗发水营销推广软文800字
  • 找网站建设公司如何自己开个网站平台
  • 网站建设佰首选金手指六自有品牌如何推广
  • 宁波建网站如何收费在百度上怎么打广告
  • 金顺广州外贸网站建设提升排名
  • 网站建设分金手指专业十百度推广和优化哪个好
  • 建筑施工企业中是应急救援领导北京百度推广优化排名
  • 做资讯类网站百度查一下
  • 江协科技STM32 15-1 FLASH闪存
  • yolov1-v3原理解析
  • 企业后端系统常用数据源类型有哪些?
  • mysql 8递归查询
  • sqli-labs通关笔记-第30关GET字符注入(WAF绕过 双引号闭合 手工注入+脚本注入两种方法)
  • 高防服务器租用的作用都有哪些?