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

wordpress添加rssseo优化多久能上排名

wordpress添加rss,seo优化多久能上排名,深圳保障房,人妖变装雅琪wordpress覆盖类属性 Python 有个很独特的特性:类属性可用于为实例属性提供默认 值。Vector2d 中有个 typecode 类属性,bytes 方法两次用到了 它,而且都故意使用 self.typecode 读取它的值。因为 Vector2d 实 例本身没有 typecode 属性,所…

覆盖类属性

Python 有个很独特的特性:类属性可用于为实例属性提供默认
值。Vector2d 中有个 typecode 类属性,bytes 方法两次用到了
它,而且都故意使用 self.typecode 读取它的值。因为 Vector2d 实
例本身没有 typecode 属性,所以 self.typecode 默认获取的是
Vector2d.typecode 类属性的值。

但是,如果为不存在的实例属性赋值,会新建实例属性。假如我们为
typecode 实例属性赋值,那么同名类属性不受影响。然而,自此之
后,实例读取的 self.typecode 是实例属性 typecode,也就是把同
名类属性遮盖了。借助这一特性,可以为各个实例的 typecode 属性定
制不同的值。

Vector2d.typecode 属性的默认值是 ‘d’,即转换成字节序列时使用
8 字节双精度浮点数表示向量的各个分量。如果在转换之前把
Vector2d 实例的 typecode 属性设为 ‘f’,那么使用 4 字节单精度浮
点数表示各个分量,如示例 9-13 所示。
我们在讨论如何添加自定义的实例属性,因此示例 9-13 使
用的是示例 9-9 中不带__slots__ 属性的 Vector2d 类。
示例 9-13 设定从类中继承的 typecode 属性,自定义一个实例属性

>>> from vector2d_v3 import Vector2d
>>> v1 = Vector2d(1.1, 2.2)
>>> dumpd = bytes(v1)
>>> dumpd
b'd\x9a\x99\x99\x99\x99\x99\xf1?\x9a\x99\x99\x99\x99\x99\x01@'
>>> len(dumpd) # ➊
17
>>> v1.typecode = 'f' # ➋
>>> dumpf = bytes(v1)
>>> dumpf
b'f\xcd\xcc\x8c?\xcd\xcc\x0c@'
>>> len(dumpf) # ➌
9 >>> Vector2d.typecode #'d'

❶ 默认的字节序列长度为 17 个字节。
❷ 把 v1 实例的 typecode 属性设为 ‘f’。
❸ 现在得到的字节序列是 9 个字节长。
❹ Vector2d.typecode 属性的值不变,只有 v1 实例的 typecode 属
性使用 ‘f’。
现在你应该知道为什么要在得到的字节序列前面加上 typecode 的值
了:为了支持不同的格式。
如果想修改类属性的值,必须直接在类上修改,不能通过实例修改。如
果想修改所有实例(没有 typecode 实例变量)的 typecode 属性的默
认值,可以这么做:

>>> Vector2d.typecode = 'f'

然而,有种修改方法更符合 Python 风格,而且效果持久,也更有针对
性。类属性是公开的,因此会被子类继承,于是经常会创建一个子类,
只用于定制类的数据属性。Django 基于类的视图就大量使用了这个技
术。具体做法如示例 9-14 所示。

示例 9-14 ShortVector2d 是 Vector2d 的子类,只用于覆盖
typecode 的默认值

>>> from vector2d_v3 import Vector2d
>>> class ShortVector2d(Vector2d): # ➊
... typecode = 'f'
...
>>> sv = ShortVector2d(1/11, 1/27) # ➋
>>> sv
ShortVector2d(0.09090909090909091, 0.037037037037037035) # ➌
>>> len(bytes(sv)) # ➍
9

❶ 把 ShortVector2d 定义为 Vector2d 的子类,只用于覆盖
typecode 类属性。
❷ 为了演示,创建一个 ShortVector2d 实例,即 sv。
❸ 查看 sv 的 repr 表示形式。
❹ 确认得到的字节序列长度为 9 字节,而不是之前的 17 字节。
这也说明了我在

Vecto2d.__repr__ 

方法中为什么没有硬编码
class_name 的值,而是使用

type(self).__name__ 

获取,如下所
示:

# 在Vector2d类中定义
def __repr__(self):class_name = type(self).__name__return '{}({!r}, {!r})'.format(class_name, *self)

如果硬编码 class_name 的值,那么 Vector2d 的子类(如
ShortVector2d)要覆盖__repr__ 方法,只是为了修改 class_name
的值。从实例的类型中读取类名__repr__ 方法就可以放心继承。

至此,我们通过一个简单的类说明了如何利用数据模型处理 Python 的其
他功能:提供不同的对象表示形式、实现自定义的格式代码、公开只读
属性,以及通过 hash() 函数支持集合和映射。

http://www.dtcms.com/wzjs/46512.html

相关文章:

  • 深圳网站建设找哪家好天津seo博客
  • 青岛市住房和城乡建设局官方网站志鸿优化网官网
  • 网站模版 源码之家优化设计数学
  • 青浦网站建设公司长春百度推广电话
  • 网站建设罒金手指下拉壹陆推广项目
  • 山东省建设备案在哪个网站东莞网站制作公司联系方式
  • 公司网站建设佛山哪家好重庆森林电影高清在线观看
  • 建一个所在区域网站需要多少资金优化大师怎么卸载
  • 网站建设相关技术自媒体人15种赚钱方法
  • 做cpa网站竞价排名软件
  • 普陀区建设局网站优化推广方案
  • 南宁网站建设服务建立网站的主要步骤
  • 网站制作 成功案例买转发链接
  • 2b的网站运营怎么做个人网页生成器
  • 小贷网站需要多少钱可以做中国工商业联合会
  • 自己做网站怎么修改语言班级优化大师下载
  • 免费网站技术站长统计app下载
  • 贸易公司做网站有优势吗河南网站排名优化
  • 带数据库的网站模板下载爱链接网如何使用
  • 自己做网站编程福州网络营销推广公司
  • 做公司网站流程站长收录
  • 网站开发及app开发报价单营销渠道策略
  • 怎么做一种网站为别人宣传百度不收录网站怎么办
  • 天津个人网站备案查询著名的营销成功的案例
  • 百度竞价推广怎么收费武汉seo优化代理
  • 送上门卤菜网站要怎么做百度一下网址是多少
  • 网站建设常见问题及解决办法买外链有用吗
  • 专门做杂志的网站有哪些搜外网友情链接
  • 单页面网站如何优化引流快速提升网站关键词排名
  • 广州推广郑州seo优化外包热狗网