100+ almost identical classes is crazy. Classes are organizational structures. Having dozens of them with almost no variation does't seem useful. It's over-specialization.
It sounds very much like you need a single class with a shared lookup-table that defines the shared info. Something like:
from collections import namedtuple
Lang= namedtuple('Lang','style points creator')
LANG_FORM ={'Python':Lang('dynamic',84,'Guido van Rossum'),'Java':Lang('static',65,'James Gosling'),# ...'Pascal':Lang('static',33,'Niklaus Wirth')}classProtean(object):def __init__(self, name, form):
self.name = name
self.form = form
self.lang = LANG_FORM[form]# optional# methods here
Here LANG_FORM
can be a global variable (quasi-constant), or it could be a class variable. Either way, each instance gets basically just a pointer back to its shared info (what you refer to as class variables). It doesn't even strictly need that, if you're willing to index LANG_FORM
whenever you need it, rather than memorizing it in each instance.
If you want to have each of the instances depict itself based on its form/kind/quasi-class, add a __repr__
method:
def __repr__(self):
classname = self.__class__.__name__
return"{0}-{1}({2!r}, {3})".format(classname, self.form, self.name, self.lang.points)
Then:
p =Protean('CPython','Python')print p
Yields:
Protean-Python('CPython',84)
相关推荐
RevitLookup-2020.0.0.4.zip文件包含了2020版本的RevitLookup安装包,版本号为2020.0.0.4,提供了一个编译好的MSI安装文件,使得安装过程变得简单快捷。 首先,让我们详细了解一下RevitLookup的功能和用途。Revit...
"sin-lookup-table.rar" 提供了一个利用查表法实现正弦函数计算的解决方案,这在需要进行大量数学运算的场合非常实用。正弦函数在许多工程应用中都有需求,如信号处理、物理模拟以及图像处理等。 查表法是通过预先...
This paper documents a detailed, industrially practical procedure of characterizing the torque lookup table for interior permanent magnet (IPM) synchronous machines. The characterized lookup table ...
RevitLookup-2021.0.0.13是该插件的一个特定版本,适用于Revit 2021软件。 Revit是Autodesk公司推出的一款三维建筑设计和施工软件,广泛应用于建筑、结构和MEP(机械、电气、管道)工程领域。Revit二次开发是指利用...
RevitLookup-dev 是一个针对Autodesk Revit设计和建筑软件的开发者工具,它为Revit用户提供了一种方便的方式来检查和探索BIM(建筑信息模型)数据。RevitLookup-dev的最新版本已经更新,以确保与Revit 2024的兼容性...
revit开发必备工具 本包中是已经编译过的文件,可以直接使用 ...编辑其中RevitLookup.dll 路径为编译路径 C:\RevitLookup-2016.0.0.6\CS\bin\Debug\RevitLookup.dll 重启revit: 即可在菜单栏看到工具
RevitLookup-2017.0.0.5RevitLookup-2017.0.0.5RevitLookup-2017.0.0.5RevitLookup-2017.0.0.5RevitLookup-2017.0.0.5
1. **创建lookup table**:可以使用结构数组创建lookup table,其中字段名作为键,字段值作为对应的值。例如: ```matlab lookupTable = struct('key1', value1, 'key2', value2, ...); ``` 或者使用哈希表...
【nsq-lookup-jc】是一个专为前端开发者设计的开源库,主要用于与nsqlookupd服务进行交互,帮助开发者方便地查找并连接到nsqd节点。nsq是一款由Golang编写的高可用、高性能的消息队列系统,常用于实时处理大规模数据...
"Fibonacci-Using-Lookup-Table"这个项目正是关注这样一个话题,它展示了如何利用查找表(Lookup Table)来高效地计算斐波那契数列。斐波那契数列是一个经典的计算机科学问题,它的每个数字是前两个数字的和,起始于...
RevitLookup - 2017 的 源码,需要自己编译 用法:将RevitLookup.addin和RevitLookup.dll放到C:\ProgramData\Autodesk\Revit\Addins\2017下即可
RevitLookup - 2016 的 源码,需要自己编译 用法:将RevitLookup.addin和RevitLookup.dll放到C:\ProgramData\Autodesk\Revit\Addins\2016下即可
Lookup Table 导入表格 Lookup Table 是 Simulink 中的一种模块,能够将外部数据导入到模块中,以便在建模过程中调用。通过 Lookup Table,可以将 TXT 或 EXCEL 表格中的数据导入到 Simulink 中,提高建模效率。 ...
RevitLookup-2019源码是针对Revit 2019版本的源代码,允许开发者查看和分析其内部运作机制。 源代码的获取对于开发者来说至关重要,因为它提供了直接编译和修改项目的机会。当你下载了"RevitLookup-2019.0.0.6"这个...
在这个“Static-tree-table-lookup.rar_Table”压缩包中,包含了一个名为“1-95.c”的C语言源代码文件,很可能是对静态树表查找算法的一种实现。 静态树表是一种特殊的树形数据结构,它预先构建并固定,不支持动态...
RevitLookup - 2018 的 源码,需要自己编译 用法:将RevitLookup.addin和RevitLookup.dll放到C:\ProgramData\Autodesk\Revit\Addins\2018下即可
标题中的"PyPI 官网下载 | drf-multi-lookup-0.0.14.tar.gz"表明这是一个从Python Package Index (PyPI)官方下载的软件包,名为`drf-multi-lookup`,版本为0.0.14,且以tar.gz格式压缩。这个包可能是针对Python...
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:iso3_lookup-0.3.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
该压缩包“RevitLookup-2016.zip”包含的是RevitLookup的源代码,版本号为2016.0.0.13。这意味着它已经过时,因为Revit现在已经更新到了更高版本,但仍然对那些使用Revit 2016或需要研究旧版本插件的开发者具有价值...
首先,你需要将压缩包"RevitLookup-2019.0.0.3"解压,其中包含了必要的DLL文件和安装说明。然后,将这些文件复制到Revit的插件目录下,通常是在"Add-Ins"子目录内。重启Revit后,你可以在"应用开发"菜单或插件栏找到...