- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,如果我有以下类
class Part(object):
def __init__(self,part_number,description,rev=None,color=None):
self.dims = {}
self.dim_id = 0
self.rev = rev
if type(color) is tuple:
self.color=(color[0]/255.,color[1]/255.,color[2]/255.)
else:
self.color = color
def add_dimension(self,description,value,tol,tol_type = 'sym',dwg_sheet = None, dwg_zone = None,quality = 3):
self.dims[description] = Dimension(description=description,part=self,value=value,tol=tol,tol_type=tol_type,quality=quality,dwg_sheet=None,dwg_zone=None)
def __getattr__(self, description):
return self.dims[description]
class Dimension(object):
def __init__(self,part,value,tol,tol_type = 'sym', dwg_sheet = None, dwg_zone = None, quality = 3, description = None):
self.value = value
self.part=part
self.tol = tol
self.tol_type = tol_type
self.description = description
self.quality = quality
self.sigma = self.tol/float(quality)
def __str__(self):
return self.description
然后我运行以下代码:
a = Part('pn','this is a part')
a.add_dimension('this_is_a_dimension',1.00,0.05)
print a.this_is_a_dimension
它返回:
this_is_a_dimension
问题是,当我在键入“a.
”后尝试进行制表符补全时,我只得到以下选项
a.add_dimension
a.color
a.dim_id
a.dims
a.rev
我希望能够通过制表符完成来查看我的新参数。这类似于 Pandas Dataframes 中列名的工作方式。
有什么想法吗?
最佳答案
可以。您必须为您的类实现一个 __dir__()
方法,如讨论的那样 here .
这是它工作的一个例子:
class bar(object):
def __init__(self,):
self.a = 4
self._morelements=['b']
def __dir__(self):
return sorted(set(dir(type(self)) + list(self.__dict__) + self._morelements))
foo=bar()
现在,如果您编写 foo.
并在 Ipython 中按 TAB 键,您将同时拥有 a
和 b
作为可用成员,尽管 b
不存在。
__dir__()
的代码和对这种方法的局限性的讨论是 here .在您的情况下,您希望将 description
添加到函数 add_dimension()
内的列表 self._morelements
。
编辑:当然还需要在__init__()
中初始化self._morelements=[]
,并添加__dir__()
函数上面的例子到你的类(class) Part
关于python - 如何允许在 ipython 中使用制表符完成自定义类参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22540117/
我想跳出当前正在运行的程序并返回到 shell(无需重新启动 ipython) 最佳答案 在 Windows 上重新安装 console2 和 ipython 后,我遇到了同样的问题。如果您使用 ip
在使用 IPython 笔记本时,我越来越希望笔记本上附有一个控制台,以进行交互式编程。我发现自己添加了几行来测试代码片段,然后删除它们,这就是很好的用法。在更糟糕的用法中,我会更改同一行中的命令,一
ipthon-sql 是 ipython 的扩展,我先通过 pip install ipython-sql 安装 项目在这里:https://github.com/catherinedevlin/ip
我正在ipython Notebook中运行一些数据分析。一台单独的计算机收集一些数据并将其保存到服务器文件夹中,我的笔记本电脑会定期在该服务器上扫描新文件并进行分析。 我在while循环中执行此操作
我想让多个ipython Notebook实例在同一用户的不同端口上运行。可能吗? 类似于“NotebookApp.port”的端口列表(带有默认端口)。 最佳答案 再次运行jupyter noteb
所以 - ROOT 社区中的好人创造了以下魔法: # This is for intercepting the output of ROOT # In a cell, put %%rootprint
我正在使用 IPython 笔记本,我想在外部编辑器中编辑程序。 我如何获得 %edit file_name.py打开 Notepad++ 等编辑器。 最佳答案 运行 %edit?将为您提供%edit
精简版 我能否在 ipython 笔记本中获得 sympy 几何代数对象的漂亮 latex 风格打印? 更长的版本 在ipython笔记本,我可以从 sympy 得到各种数学对象的 pretty-pr
我不明白第四个和第六个提示中的 ${} 正在做什么,并且我找不到任何关于此的文档,Python for Unix and Linux 一书系统管理员有一个类似于第六个提示中的示例,其中变量不仅前面加上
我想在已安装 Python 2.7 的 Windows XP 计算机上运行 IPython(版本 0.12)。 我通过 Windows 二进制安装程序安装,但安装后 IPython 没有显示在菜单中,
IPython 中是否有自动关闭方括号、引号、圆括号等的选项? 我希望有一个类似于 gedit 插件中的功能。 最佳答案 通过调整 ~/.inputrc 可以让应用程序(包括 IPython)使用 r
我正在使用 IPython Web 笔记本,每个 block 之前都有一个提示编号,例如“In [68]:”。这个提示号码的用途是什么?你能用它做任何事吗?您可以/应该重置它吗? 最佳答案 IPyth
我升级到 iPython 3.0.0(Python 3.4;使用 Anaconda 环境;Mac OSX 10.9.5),打开新的 iPython Notebook session 的行为似乎发生了变
我希望能找到更多关于以下内容的文档: From one computer: C:\Python>ipython notebook opens the browser as 'IPython Noteb
我正在尝试在我的 IPython 笔记本中上传一个大小为 500MB 的网络日志文件。但是我收到错误消息“无法上传文件 >25Mb”。 有什么方法可以克服这个错误。任何帮助将不胜感激。 谢谢。 最佳答
简单地说,魔术函数 %precision 不考虑简单变量输出的浮点精度。 #Configure matplotlib to run on the browser %matplotlib noteboo
安装 IPython 后,我立即创建了一个默认配置文件: $ ipython profile create 然后,我创建了另一个,这次我给它起了名字testing: $ ipython profile
我已经尝试使用命令来拆分单元格“m -”,但它不起作用。使用 esc 或 fn 键作为修饰符时,所有键命令的重置都可以正常工作。我也处于正确的模式(edititng 模式)。 最佳答案 在编辑模式下,
我想将 ipython 笔记本中的字体类型更改为 consolas 字体类型。我首先使用 ipython profile create 但是,我不清楚在此配置文件中指定字体类型的语法。 任何帮助表示赞
我正在使用 iPython 命令行界面,经过一些操作后,我想将操作历史记录保存到笔记本文件中。但我从一开始就没有使用 iPython notebook。我还能做到吗? 最佳答案 来自@Thomas K
我是一名优秀的程序员,十分优秀!