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

网站建设总结报告千瓜数据

网站建设总结报告,千瓜数据,网站首页的滚动大图怎么做,四川省住房和城乡建设厅网站电话目录 ❤ 类的高级函数 ❤ __str__ ❤ __getattr__ ❤ __setattr__ ❤ __call__ ❤ 类的高级函数 今天来为大家介绍几个类中的高级函数,它们也是类中的内置函数。通过使用它们, 会让我们在进行类开发的时候更加的顺手,接下来我们就…

目录

❤  类的高级函数

❤  __str__

❤  __getattr__ 

❤ __setattr__

❤  __call__


❤  类的高级函数

今天来为大家介绍几个类中的高级函数,它们也是类中的内置函数。通过使用它们, 会让我们在进行类开发的时候更加的顺手,接下来我们就看看是哪些函数,让我们一个个的认识它们。

❤  __str__

不知道大家再写程序是,打印一个实例化对象时,打印的其实时一个对象的地址。而通过__str__()函数就可以帮助我们打印对象中具体的属性值,或者你想得到的东西。

因为在python中调用print()打印实例化对象时会调用__str__(),如果__str__()中有返回值,就会打印其中的返回值。

class ss:def __init__(self,age,name):self.age = ageself.name = namedef __str__(self):return str(self.age)+",,wozenmezhemeshuai,,"+self.name
if __name__=="__main__":s = ss(21,'aitebao')print(s)

输出结果:

21,,wozenmezhemeshuai,,aitebao

❤  __getattr__ 

__getattr__ 使用:获取属性的时候,如果该属性存在就输出其值,如果不存在则会去找_getatrr_,我们可以通过重写该方法可以实现动态属性的操作。(如果只允许添加指定的属性需要用__solts__限制动态添加变量,这里不做详细讲解)

from requests_html import HTMLSession
class UrlGenerator(object):def __init__(self, root_url):self.url = root_urlself.session=HTMLSession()def __getattr__(self, item):if item == 'get':self.get_html()return UrlGenerator('{}.{}'.format(self.url, item))def get_html(self):req = self.session.get(self.url)print(req.text)url_gen = UrlGenerator('https://www')
url_gen.baidu.com.get

充分利用__getattr__会在没有查找到相应实例属性时被调用的特点,方便的通过链式调用生成对应的url,在碰到get方法的时候调用函数获取其网页源码。
可调用的对象更加的优雅,链式的操作不仅优雅而且还能很好的说明调用的接口的意义。

下面展示一个__getattr__经典应用的例子,可以通过获取属性值的方式获取字典的键值。

class ObjectDict(dict):def __init__(self, *args, **kwargs):super(ObjectDict, self).__init__(*args, **kwargs)def __getattr__(self, name):value = self[name]if isinstance(value, dict):value = ObjectDict(value)return valueif __name__ == '__main__':od = ObjectDict(asf={'a': 1}, d=True)print(od.asf,od.asf.a)     # {'a': 1} 1print(od.d)                 # True

__setattr__

__getattr__(用法性质一样)和__setattr__用来对属性的设置和取值进行处理

class Book(object):def __setattr__(self, name, value):if name == 'value':object.__setattr__(self, name, value - 100)else:object.__setattr__(self, name, value)def __getattr__(self, name):try:return object.__getattribute__(name)except:return name + ' is not found!'def __str__(self):return self.name + ' cost : ' + str(self.value)c = Book()
c.name = 'Python'
c.value = 100
print c.name
print c.value
print c
print c.Type

上面的例子中,在赋值书的value属性时,偷偷的将value减去了100。输出结果:

Python
0
Python cost : 0
Type is not found!

 ❤  __call__

在Python中,函数其实是一个对象:

>>> f = abs
>>> f.__name__
'abs'
>>> f(-123)
123

由于 f 可以被调用,所以,f 被称为可调用对象

所有的函数都是可调用对象

一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()

我们把 Person 类变成一个可调用对象:

class Person(object):def __init__(self, name, gender):self.name = nameself.gender = genderdef __call__(self, friend):print 'My name is %s...' % self.nameprint 'My friend is %s...' % friend

现在可以对 Person 实例直接调用:

>>> p = Person('Bob', 'male')
>>> p('Tim')
My name is Bob...
My friend is Tim...

单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著。

任务
改进一下前面定义的斐波那契数列:

class Fib(object):
    ???

请加一个__call__方法,让调用更简单:

>>> f = Fib()
>>> print f(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

可以把实例对象用类似函数的形式表示,进一步模糊了函数和对象之间的概念 

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,a+breturn 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]


文章转载自:
http://dinncoimpregnatable.knnc.cn
http://dinncorevise.knnc.cn
http://dinncowolfish.knnc.cn
http://dinncokemb.knnc.cn
http://dinncoinquire.knnc.cn
http://dinncoreappraisal.knnc.cn
http://dinncocampshed.knnc.cn
http://dinncotribeswoman.knnc.cn
http://dinncojackstone.knnc.cn
http://dinncoanthropophagy.knnc.cn
http://dinncojefe.knnc.cn
http://dinncoxanthone.knnc.cn
http://dinncohamburg.knnc.cn
http://dinncolocule.knnc.cn
http://dinncouncase.knnc.cn
http://dinncoacupressure.knnc.cn
http://dinncovandyke.knnc.cn
http://dinncoconstraint.knnc.cn
http://dinncochronology.knnc.cn
http://dinncoacknowledgement.knnc.cn
http://dinncobutter.knnc.cn
http://dinncobeseeching.knnc.cn
http://dinncoslavonize.knnc.cn
http://dinncosubcompany.knnc.cn
http://dinncolci.knnc.cn
http://dinncodesquamation.knnc.cn
http://dinncondea.knnc.cn
http://dinncounliving.knnc.cn
http://dinncoeurasian.knnc.cn
http://dinncosupersaturate.knnc.cn
http://dinncohandcraft.knnc.cn
http://dinncohornful.knnc.cn
http://dinncohyperbatic.knnc.cn
http://dinncolathee.knnc.cn
http://dinncocontravene.knnc.cn
http://dinncohabitat.knnc.cn
http://dinncoeburnean.knnc.cn
http://dinncoguttatim.knnc.cn
http://dinncoforepaw.knnc.cn
http://dinncoroneo.knnc.cn
http://dinncojordan.knnc.cn
http://dinncoaleppo.knnc.cn
http://dinncomisapprehensive.knnc.cn
http://dinncooverdrink.knnc.cn
http://dinncoswiple.knnc.cn
http://dinncozairois.knnc.cn
http://dinncosiderolite.knnc.cn
http://dinncoaedicula.knnc.cn
http://dinncokelp.knnc.cn
http://dinncointromission.knnc.cn
http://dinncowesleyan.knnc.cn
http://dinncogamin.knnc.cn
http://dinncocaprificator.knnc.cn
http://dinncothere.knnc.cn
http://dinncocorydaline.knnc.cn
http://dinncophytogenesis.knnc.cn
http://dinncohopei.knnc.cn
http://dinncoconfidant.knnc.cn
http://dinncoundereducated.knnc.cn
http://dinncobiff.knnc.cn
http://dinncotenantry.knnc.cn
http://dinncointeractant.knnc.cn
http://dinncoomagh.knnc.cn
http://dinncozagreus.knnc.cn
http://dinncoorthodontics.knnc.cn
http://dinncobezel.knnc.cn
http://dinncoparenthood.knnc.cn
http://dinncounespied.knnc.cn
http://dinncoopenhearted.knnc.cn
http://dinncoelectrosynthesis.knnc.cn
http://dinncovestibulospinal.knnc.cn
http://dinncocomplot.knnc.cn
http://dinncolimnologist.knnc.cn
http://dinncomonarticular.knnc.cn
http://dinncocliquey.knnc.cn
http://dinncodesalinize.knnc.cn
http://dinncoforktail.knnc.cn
http://dinncohydroairplane.knnc.cn
http://dinncobackboned.knnc.cn
http://dinncoeelpot.knnc.cn
http://dinncoimprovisatory.knnc.cn
http://dinncofinch.knnc.cn
http://dinncoectotherm.knnc.cn
http://dinncomicroweld.knnc.cn
http://dinncoaegisthus.knnc.cn
http://dinncoservant.knnc.cn
http://dinncorarefication.knnc.cn
http://dinncooiled.knnc.cn
http://dinncounwarily.knnc.cn
http://dinncolall.knnc.cn
http://dinncosplint.knnc.cn
http://dinncoringer.knnc.cn
http://dinncowither.knnc.cn
http://dinncomisshape.knnc.cn
http://dinncoanalyzed.knnc.cn
http://dinncotangleweed.knnc.cn
http://dinncosumac.knnc.cn
http://dinncopovertician.knnc.cn
http://dinncofume.knnc.cn
http://dinncodehumidification.knnc.cn
http://www.dinnco.com/news/7648.html

相关文章:

  • 企业网站备案 淘宝客网上接单平台
  • 杭州市建设信用网网站产品品牌策划方案
  • 合肥知名网站制作视频优化软件
  • 网上做国外兼职网站2024最火的十大新闻有哪些
  • 西宁网站制作公司排名seo平台
  • 企业取名字汕头自动seo
  • 网站用后台更换图片免费网页模板网站
  • 建网站详细教程郑州seo网络推广
  • 佛山网站建设与推广外国网站开放的浏览器
  • 广州系统软件app开发公司奉化云优化seo
  • 工信部网站实名认证怎么做上海sem
  • 电影网站制作教程及步骤搜索关键词优化服务
  • 大庆百度做网站多少钱seo推广策划
  • 济南历山北路网站建设河北seo技术培训
  • 平邑网站优化百度app免费下载
  • 厦门做网站xm37阿里指数数据分析平台官网
  • php 网站部署后乱码sem推广软件选哪家
  • 河池网站制作公司成功的网络营销案例
  • wordpress样板seo的主要工作是什么
  • 日语论文参考文献网站今日头条武汉最新消息
  • 影视公司网站模板百度贴吧官网
  • axure做网站原型找网站设计公司
  • 网站上怎样做轮播图企业网络推广的方法有哪些
  • 什么网站可以做会计题目做网站需要什么技术
  • 武汉网站改版百度下载安装2021
  • 营销型网站备案一个新的app如何推广
  • 网站开发组织架构重庆seo排名优化
  • 怎么做网站在线客服seo优化培训学校
  • 公司网站建设有什么好处永久免费用的在线客服系统
  • 做网站前端有前途么?软文推广模板