找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 6708|回复: 10
打印 上一主题 下一主题

访问字典的速度比访问对象成员的速度快13%

11

主题

35

帖子

35

积分

贫民

积分
35
跳转到指定楼层
楼主
zy1 发表于 2016-1-30 14:33:49 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
自己做了个小实验,结果是
访问字典的速度比访问对象成员的速度快13%
详细情况如下

有时在写程序的时候我们会犹豫是用类还是用字典, 比如
用类
class User:
    def __init__(self, id, name, age):
        self.id = id
        self.name = name
        self.age = age
或者用字典
user = dict()
user['id'] = 0
user['name'] = 'Tom'
user['age'] = 10

我想测试一下访问对象成员的速度和访问字典的速度
测试程序和结果如下

测试访问对象成员的速度
class A:
        def __init__(self):
                self.a1 = 0
                self.a2 = 0
                self.a3 = 0
                self.a4 = 0
                self.a5 = 0
                self.a6 = 0
                self.a7 = 0
                self.a8 = 0
                self.a9 = 0
                self.a10 = 0

a = A()
for i in xrange(10000000):
        a.a1 = 999
        a.a2 = 999
        a.a3 = 999
        a.a4 = 999
        a.a5 = 999
        a.a6 = 999
        a.a7 = 999
        a.a8 = 999
        a.a9 = 999
        a.a10 = 999

结果:4.432s

测试访问字典的速度
a = dict()
a['a1'] = 0
a['a2'] = 0
a['a3'] = 0
a['a4'] = 0
a['a5'] = 0
a['a6'] = 0
a['a7'] = 0
a['a8'] = 0
a['a9'] = 0
a['a10'] = 0
for i in xrange(10000000):
    a['a1'] = 999
    a['a2'] = 999
    a['a3'] = 999
    a['a4'] = 999
    a['a5'] = 999
    a['a6'] = 999
    a['a7'] = 999
    a['a8'] = 999
    a['a9'] = 999
    a['a10'] = 999

结果:3.865s

访问字典的速度比访问对象成员的速度快13%

回复

使用道具 举报

11

主题

35

帖子

35

积分

贫民

积分
35
11#
zy1  楼主| 发表于 2016-9-20 11:52:08 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

30

帖子

30

积分

版主

Rank: 7Rank: 7Rank: 7

积分
30

活跃会员热心会员突出贡献荣誉管理

10#
鸟笨Andy 发表于 2016-8-25 10:22:27 | 只看该作者
很棒{:8_205:}
回复

使用道具 举报

11

主题

35

帖子

35

积分

贫民

积分
35
9#
zy1  楼主| 发表于 2016-7-24 04:28:21 | 只看该作者

多谢管理员支持!
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

8#
blueelwang 发表于 2016-7-22 14:53:14 | 只看该作者
TiKi 发表于 2016-7-22 13:18
你为啥会第一时间发现别人发帖呢

并没有, 因为经常回来论坛逛逛
回复 支持 反对

使用道具 举报

5

主题

18

帖子

18

积分

版主

Rank: 7Rank: 7Rank: 7

积分
18

活跃会员热心会员突出贡献荣誉管理

7#
TiKi 发表于 2016-7-22 13:18:46 | 只看该作者
blueelwang 发表于 2016-7-22 12:11
我推荐的, 好文章当然要推荐

你为啥会第一时间发现别人发帖呢
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

6#
blueelwang 发表于 2016-7-22 12:11:59 | 只看该作者
TiKi 发表于 2016-7-22 11:56
我想知道是谁推荐的手怎么那么快

我推荐的, 好文章当然要推荐
回复 支持 反对

使用道具 举报

5

主题

18

帖子

18

积分

版主

Rank: 7Rank: 7Rank: 7

积分
18

活跃会员热心会员突出贡献荣誉管理

5#
TiKi 发表于 2016-7-22 11:56:39 | 只看该作者
我想知道是谁推荐的手怎么那么快
回复 支持 反对

使用道具 举报

11

主题

35

帖子

35

积分

贫民

积分
35
地板
zy1  楼主| 发表于 2016-7-22 11:46:49 | 只看该作者

多谢鼓励!
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

板凳
blueelwang 发表于 2016-7-12 11:09:02 | 只看该作者
不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表