我正在尝试使用排序对象列表
my_list.sort(key=operator.attrgetter(attr_name))
但如果有任何列表项attr = None
而不是attr = 'whatever'
,
然后我得到了 TypeError: unorderable types: NoneType() < str()
在Py2中,这不是问题.我如何在Py3中处理这个?
编写一个将类映射到简单表视图的GUI库时,我遇到了这个问题.某个类型=列的每个类成员以及列的顺序都很重要.但...
class Person(object):
name = None
date_of_birth = None
nationality = None
gender = None
address = None
comment = None
for member in Person.__dict__.iteritems():
if not member[1]:
print member[0]
Run Code Online (Sandbox Code Playgroud)
输出:
comment
date_of_birth
name
address
gender
nationality
...
Run Code Online (Sandbox Code Playgroud)
呃,奥得河搞得一团糟......想要的输出:
name
date_of_birth
nationality
gender
address
comment
Run Code Online (Sandbox Code Playgroud)
有没有办法在不保留额外OrderedDict()
列的情况下完成?
mapper = QtGui.QDataWidgetMapper()
mapper.setModel(my_table_model)
mapper.addMapping(widgetA, 0) #mapping widget to a column
mapper.addMapping(widgetB, 1) #mapping widget to a column
mapper.setItemDelegate(MyDelegateA(widgetA)) #Hmm. Where is the 'column' parameter?
mapper.setItemDelegate(MyDelegateB(widgetB)) #now itemDelegate is rewritten, MyDelegateB will be used
Run Code Online (Sandbox Code Playgroud)
那么......如何为单个代表设置多个代理QDataWidgetMapper
?据我所知,没有QDataWidgetMapper.setItemDelegateForColumn()
或者我是否需要创建一些代理工厂,它将使用适当的代理?
谢谢!
我正在使用Elixir和sqla 0.6,我正在尝试查询我的模型:
class Document(Entity):
using_options(shortnames=True, order_by='doc_date')
doc_number = Field(Unicode(20),index=True)
Run Code Online (Sandbox Code Playgroud)
...对于具有给定长度的数字的文档.
我在考虑这样的事情:
Document.query.filter(Document.doc_number.char_lenght()==5).all()
Run Code Online (Sandbox Code Playgroud)
......但显然,CHAR_LENGTH,而目前在sqlalchemy.sql.functions,是不是在这里工作.如何在声明性成语中使其工作,而不需要直接查询?
我在徘徊elixir\sqlalchemy如何在我打电话的时候知道我在模型中声明的所有实体类setup_all()
?我在我的一个小项目中需要这种功能,但我不知道.我试图通过elixir's steptrace setup_all()
,我发现它将所有实体类的集合保存在"全局"列表中(或者它是dict?),但我无法捕捉到列表填充的那一刻.有任何想法吗?
美好的一天!
我正在编写一个为我的数据感知应用程序构建GUI的小工具.
基本思想是获取包含模型描述(sqla/elixir
实体)作为输入的模块,并向用户显示此模块中可用类(继承自Entity()
)及其字段(继承自Field()
)的列表.
该pyclbr模块是罚款获得类和它们的方法,但它不能读取其他类成员.我知道__dict__
并检查模块,但问题是它们需要实例化一个有问题的类,这在这种情况下是错误的.那么,有另一种方式吗?
我真的不想将模块解析为文本.:)
win32上的Python 2.7.2(默认,2011年6月12日,14:24:46)[MSC v.1500 64位(AMD64)].
>>> locale.getdefaultlocale()
('ru_RU', 'cp1251') #ok, Russian locale is set, as per user settings
>>> a = datetime.date.today()
>>> a.strftime("%B %d")
March 22' #ouch, that's not Russian.
>>> locale.setlocale(locale.LC_ALL, 'russian_russia')
'Russian_Russia.1251'
>>> a.strftime("%B %d")
'???? 22' #now it's ok
Run Code Online (Sandbox Code Playgroud)
那么......为什么不重置默认语言环境不行呢?它与操作系统有关吗?有办法做某事locale.setlocale(convert_it_somehow(locale.getdefaultlocale()))
吗?我想要做的就是根据用户的偏好显示日期.谢谢!