加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python O(1)成员数据访问可能吗?

发布时间:2020-12-20 11:17:47 所属栏目:Python 来源:网络整理
导读:在C中,为了访问“命名”成员数据,我们不断做: const unsigned int CHEESE_CAKE = 0;const unsigned int CHOCOLATE_CAKE = 1;...const unsigned int CHERRY_PIE = 1050; 然后,当我们想要访问与字符串匹配的某些特定资源时,我们可以简单地执行: mResource[My
在C中,为了访问“命名”成员数据,我们不断做:

const unsigned int CHEESE_CAKE = 0;
const unsigned int CHOCOLATE_CAKE = 1;
...
const unsigned int CHERRY_PIE = 1050;

然后,当我们想要访问与字符串匹配的某些特定资源时,我们可以简单地执行:

mResource[MyClass::CHEESE_CAKE]; // constant time O(1) access

我试图以类似的方式在python中执行此操作:

class MyClass:
    MY_CLASS_DATA1 = someData(1)
    MY_CLASS_DATA2 = someData(1)

但根据我的理解,python的成员函数存储在__dict__中,这实际上是一个给出O(logn)查找时间的哈希映射.

有没有办法像在C中那样在python中实现O(1)性能,或者由于python的动态特性,这是不可能的?

解决方法

适当的哈希表实现提供了分摊的O(1)查找时间.当您提到O(log n)时间时,您正在考虑二叉搜索树. Python名称查找是O(1).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读