Python中文
首页
教程
问答
标签
搜索
登录
注册
获取实例变量名的列表
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想得到一个类的所有实例变量的列表,而不需要创建该类的实例。我觉得这在Python中是不可能的。在</p> <p>假设我有这样的课程:</p> <pre><code>class Person(object): def __init__(self, fullname, age): self.firstname, self.lastname = fullname.split(' ') self.age = age </code></pre> <p>我想从这个列表中得到<code>['lastname', 'age', 'firstname']</code>。在</p> <p>我能够得到这个结果的唯一方法是使用<code>Person</code>的临时实例:</p> ^{pr2}$ <p>这里的问题是,由于调用了<code>fullname.split()</code>,如果我试图用<code>Person(None, None)</code>创建一个空实例,则会引发一个错误。我不允许改变<code>__init__</code>来允许这样做。在</p> <p>我的第一个想法是使用<code>vars(Person).keys()</code>,但是这给出了<code>Person</code>类型的所有属性,而不是{<cd2>}的实例所具有的属性:</p> <pre><code>print vars(Person).keys() # ['__module__', '__dict__', '__weakref__', '__doc__', '__init__'] </code></pre> <p>有没有办法在不修改类的情况下,不使用<code>temp</code>来完成这项工作?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>这取决于你有多想知道。例如,您可以fork/exec程序的一个新实例,实例化类,分析实例,并返回结果。在</p> <p>您可以创建一个对象,该对象使用<code>__magic_methods__()</code>来检测它的哪些方法被调用(如<code>.split()</code>),然后尝试猜测一个合适的输入类型。。。在</p> <p>但是你能调用一些知道实例数据的起始列表是什么的东西吗?没有</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
9 回答
Jupyter运行不同版本的卸载库?
8 回答
Jupyter运行指定的键盘快捷键
10 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
4 回答
Jupyter重新加载自定义样式
9 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
8 回答
jupyter错误:无法在随机林中将决策树视为png
10 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
4 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
10 回答
Jupyter隐藏数据帧索引,但保留原始样式
3 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
8 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
7 回答
Jupy上Python的读/写访问问题
5 回答
jupy上没有模块cv
5 回答
Jupy上的排序错误
3 回答
Jupy中bqplot图形的紧凑布局
4 回答
Jupy中matplotlib plot的连续更新
10 回答
Jupy中Numpy函数的文档
6 回答
Jupy中Pandas的自动完成问题
2 回答
jupy中Qt后端的Matplotlib动画
7 回答