一个相当简单的问题,我确信有答案,我似乎无法通过搜索找到它
有时我正在查看或编写一些我想要仔细检查的代码,或者找出我所在的课程,是否有更简单的方法可以找到而无需向上滚动class?
我正在尝试使用带有图标和子菜单的python添加一些shell扩展,但我很难比pywin32中的演示更进一步.我似乎无法通过搜索谷歌找到任何东西.
我相信我需要注册一个com服务器,以便能够根据右键单击文件/文件夹的位置和文件类型等更改子菜单中的选项.
# A sample context menu handler.
# Adds a 'Hello from Python' menu entry to .py files. When clicked, a
# simple message box is displayed.
#
# To demostrate:
# * Execute this script to register the context menu.
# * Open Windows Explorer, and browse to a directory with a .py file.
# * Right-Click on a .py file - locate and click on 'Hello from Python' on
# the context menu.
import pythoncom
from win32com.shell …Run Code Online (Sandbox Code Playgroud) 我遇到了cx_Freeze运行冻结应用程序的问题(工作正常解冻).
运行程序时,会产生以下回溯:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 27, in <module>
exec code in m.__dict__
File "PythonApp/mainframe.py", line 3, in <module>
File "/usr/local/lib/python2.7/site-packages/dbus/__init__.py", line 103, in <module>
from dbus._dbus import Bus, SystemBus, SessionBus, StarterBus
File "/usr/local/lib/python2.7/site-packages/dbus/_dbus.py", line 39, in <module>
from dbus.bus import BusConnection
File "/usr/local/lib/python2.7/site-packages/dbus/bus.py", line 39, in <module>
from dbus.connection import Connection
File "/usr/local/lib/python2.7/site-packages/dbus/connection.py", line 27, in <module>
import threading
File "/usr/local/lib/python2.7/threading.py", line 44, in <module>
module='threading', message='sys.exc_clear')
File "/usr/local/lib/python2.7/warnings.py", line 57, in filterwarnings …Run Code Online (Sandbox Code Playgroud) 从这样的两个对象继承时
class Foo(object):
def __init__(self,a):
self.a=a
class Bar(object):
def __init__(self,b):
self.b=b
Run Code Online (Sandbox Code Playgroud)
我通常会这样做
class FooBar(Foo,Bar):
def __init__(self,a,b):
Foo.__init__(self,a)
Bar.__init__(self,b)
Run Code Online (Sandbox Code Playgroud)
超级怎么知道我是否想要同时打电话?如果是这样,它将如何知道哪个参数传递到哪里.或者根本不可能在这里使用超级?
即使Foo和Bar采取相同的论点可以super处理这个?
或者我不应该首先尝试这样做吗?
我对c#很陌生,我要做的第一件事就是ListView使用数据绑定,结果还不错.
我现在正试图让物品有一个扭曲按钮,如果底层模型有任何孩子(如TreeView).每个孩子的列都与所有顶级项目相同.
我该怎么做呢?这样的控件是否存在?如果不是,我会更好地打扮一个TreeView看起来像一个ListView,或打扮一个ListView看起来像TreeView?
我沿着这个解决方案中概述的道路走了一条TreeView,但最终的结果看起来非常糟糕,标题实际上只是一个项目,所以你失去了所有漂亮的列大小和列按钮,可以连接到列排序你进入,ListView这样的路线实际上似乎会更多的工作.
我注意到新任务管理器的控件与我正在尝试创建的完全一样,我不知道这是怎么做的?可能在C中.

我经常发现自己想要做这样的事情,我有一些东西包裹在这样的尝试中
item= get_item()
try:
do_work(item)
except SomeError as err:
if err.code == 123:
do_something(item)
else:
# Actually I don't want to do something with this error code... I want to handle in 'except'
except:
put_back(item)
raise
Run Code Online (Sandbox Code Playgroud)
有没有办法except从其他地方加入下面的区块?(一个continue会很好)我最终做了类似下面的事情,并不是那么干净
item= get_item()
try:
try:
do_work(item)
except SomeError as err:
if err.code == 123:
do_something(item)
else:
raise
except:
put_back(item)
raise
Run Code Online (Sandbox Code Playgroud)
反正有吗?
我一直试图找出如何从python获取和设置文件标签的颜色.
我找到的最接近解决方案的是这个,但我似乎无法在任何地方找到模块macfile.我只是不够努力吗?
如果不是,有没有不同的方法来实现这一目标?
我有一些代码将一些存储为字符串的时间戳转换为datetime对象,并注意到今天转换日期时int时间戳值大于max int的异常.
datetime.datetime.fromtimestamp(2147570047)
Run Code Online (Sandbox Code Playgroud)
比如给我
ValueError: timestamp out of range for platform time_t
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?假设我想继续使用32位python(运行2.7.2)
我注意到我可以将max int转换为datetime对象,然后使用timedeltas添加任何额外的东西,但我想不出在实践中这样做的特别有效或好的方法.我可以将这些2038多个时间戳转换为datetime对象的好方法是什么?
我想要一个文件对象,在写入数据时直接刷新文件,并写下:
class FlushingFileObject(file):
def write(self,*args,**kwargs):
return_val= file.write(self,*args,**kwargs)
self.flush()
return return_val
def writelines(self,*args,**kwargs):
return_val= file.writelines(self,*args,**kwargs)
self.flush()
return return_val
Run Code Online (Sandbox Code Playgroud)
但有趣的是,当我写它时它没有刷新,所以我尝试了一些包括这个的东西:
class FlushingFileObject(object):
def __init__(self,*args,**kwargs):
self.file_object= file(*args,**kwargs)
def __getattr__(self, item):
return getattr(self.file_object,item)
def write(self,*args,**kwargs):
return_val= self.file_object.write(*args,**kwargs)
self.file_object.flush()
return return_val
def writelines(self,*args,**kwargs):
return_val= self.file_object.writelines(*args,**kwargs)
self.file_object.flush()
return return_val
Run Code Online (Sandbox Code Playgroud)
冲洗.
为什么不在file此实例中进行子类化工作?
在尝试解决另一个问题时,我偶然发现了这一点.
这对我来说似乎非常奇怪,我认为值得提问.为什么似乎没有__getattr__合作with?
如果我做这个对象:
class FileHolder(object):
def __init__(self,*args,**kwargs):
self.f= file(*args,**kwargs)
def __getattr__(self,item):
return getattr(self.f,item)
Run Code Online (Sandbox Code Playgroud)
并使用它with,
>>> a= FileHolder("a","w")
>>> a.write
<built-in method write of file object at 0x018D75F8>
>>> with a as f:
... print f
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: __exit__
>>> a.__exit__
<built-in method __exit__ of file object at 0x018D75F8>
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
>>> object.__exit__
Traceback (most recent call last):
File "<stdin>", line 1, …Run Code Online (Sandbox Code Playgroud)