我试图通过它的索引访问一个dict_key的元素: test = {'foo': 'bar', 'hello': 'world'} keys = test.keys() # dict_keys object keys.index(0) AttributeError: 'dict_keys' object has no attribute 'index' 我想得到foo 。 同: keys[0] TypeError: 'dict_keys' object does not support indexing 我怎样才能做到这一点?
我目前是基于Python Cookbook第12.5章的以下代码: from xml.parsers import expat class Element(object): def __init__(self, name, attributes): self.name = name self.attributes = attributes self.cdata = '' self.children = [] def addChild(self, element): self.children.append(element) def getAttribute(self,key): return self.attributes.get(key) def getData(self): return self.cdata def getElements(self, name=''): if name: return [c for c in self.children if c.name == name] else: return list(self.children) class […]
我不知道什么时候属性应该是私人的,如果我应该使用财产。 我最近读到setter和getters不pythonic,我应该使用属性装饰。 没关系。 但是,如果我有属性,不能从课外设置,但可以读取(只读属性)。 如果这个属性是私人的,私人的,我指的是下划线,就像self._x ? 如果是的话,我怎样才能读取它,而不使用getter? 我现在唯一知道的方法是写 @property def x(self): return self._x 这样我可以通过obj.x读取属性,但我不能设置它obj.x = 1所以没关系。 但是,我真的应该关心设置不能设置的对象吗? 也许我应该离开它。 但是再次我不能使用下划线,因为读取obj._x对于用户obj._x很奇怪,所以我应该使用obj.x ,然后用户不知道他不能设置这个属性。 你的意见和实践是什么?
为什么Python本身不支持loggingtypes? 这是一个具有可变版本的namedtuple的问题。 我可以使用namedtuple._replace 。 但是我需要把这些logging集合到一个集合中,并且由于namedtuple._replace创build了另一个实例,所以我也需要修改这个集合,这个集合很快就变得凌乱了。 背景:我有一个设备的属性,我需要通过轮询它通过TCP / IP。 即其表示是一个可变的对象。 编辑:我有一套我需要轮询的设备。 编辑:我需要使用PyQt遍历显示其属性的对象。 我知道我可以添加特殊的方法,如__getitem__和__iter__ ,但我想知道是否有更简单的方法。 编辑:我宁愿一个types的属性是固定的(就像他们在我的设备),但是可变的。
在C ++中,我可以像这样打印debugging输出: printf( "FILE: %s, FUNC: %s, LINE: %d, LOG: %s\n", __FILE__, __FUNCTION__, __LINE__, logmessage ); 我如何在Python中做类似的事情?
我想通过发出嘟嘟声来完成任务时,有一个Python程序会提醒我。 目前,我使用import os ,然后使用命令行语音程序来说“过程完成”。 我宁愿它是一个简单的“钟”。 我知道有一个可以在Cocoa应用程序NSBeep中使用的函数,但是我觉得这跟这个没什么关系。 我也尝试print(\a)但没有奏效。 我正在使用Mac,如果你不能通过我的cocoa评论告诉,所以这可能会有所帮助。 谢谢!
我想拖放我的数据文件到一个Python脚本,并让它处理文件并生成输出。 Python脚本接受数据文件的名称作为命令行参数,但Windows资源pipe理器不允许脚本成为放置目标。 是否有某种configuration需要在这个工作的某个地方完成?
我怎么能testing两个JSON对象在Python中是否相等,忽略列表的顺序? 例如 … JSON文件a : { "errors": [ {"error": "invalid", "field": "email"}, {"error": "required", "field": "name"} ], "success": false } JSON文件b : { "success": false, "errors": [ {"error": "required", "field": "name"}, {"error": "invalid", "field": "email"} ] } a和b应该相等,即使"errors"列表的顺序不同。
当从1.8升级到django 1.9时,我得到了这个错误。 我检查了类似问题的答案,但我不认为这是任何第三方包或应用程序的问题。 Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line utility.execute() File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 342, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 176, in fetch_command commands = get_commands() File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/utils/lru_cache.py", line 100, in wrapper result = user_function(*args, **kwds) File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 71, in get_commands for […]
Python是目前我所知道的最好的语言,但是由于自动完成,静态types是一个很大的优势(虽然对dynamic语言的支持有限,但与静态types相比并不算什么)。 我很好奇,如果有任何语言试图将Python的好处添加到静态types的语言。 特别是我在有以下function的语言中很有趣: 语法支持:如字典,数组理解 函数:关键字参数,闭包,元组/多个返回值 运行时修改/创build类 避免在任何地方指定类(在Python中,这是由于鸭子键入,尽pipetypes推断在静态types语言中会更好) 元编程支持:这是通过reflection,注释和元类在Python中实现的 是否有任何静态types的语言与这些function的相当数量?