我正在寻找一种优雅的方法,使用一些嵌套的dicts和列表(即javascript样式的对象语法)在dict上使用属性访问来获取数据.
例如:
>>> d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Run Code Online (Sandbox Code Playgroud)
应该可以通过这种方式访问:
>>> x = dict2obj(d)
>>> x.a
1
>>> x.b.c
2
>>> x.d[1].foo
bar
Run Code Online (Sandbox Code Playgroud)
我认为,如果没有递归,这是不可能的,但是什么是获得dicts的对象样式的好方法?
有人可以向我解释如何正确测试Postgres DB错误,特别是IntegrityError.例如,我有下一个测试:
class TestSlugs(TestCase):
# This slug must be unique
b = BookPublisher(slug=self.duplicate_slug)
self.assertRaises(IntegrityError, b.save)
#check if there's only one BookPublisher
self.assertEquals(BookPublisher.objects.count(), 1)
Run Code Online (Sandbox Code Playgroud)
在这里它捕获IntegrityError但是然后所有操作都将失败,因为这就是postgres的工作方式,好吧.我在docs中看到我可以使用transaction.rollback()但在哪里:在test或save()方法中?
另外,我不喜欢手工编写回滚的想法,为什么django不能尝试保存,如果失败 - 给我IntegrityError并让我继续工作.
我正在使用django 1.1
我正在开发和iPhone 3.0应用程序.我正在尝试将UITextView中的Web链接打开到UIWebView而不是Safari.但仍然没有运气.
这UITextView是不可编辑的,它可以完美地检测Web链接并在Safari中打开它们.
怎么避免呢?如何获取该网址,以便我可以使用我自己的UIWebView?
例:
import scala.actors._
import Actor._
class BalanceActor[T <: Actor] extends Actor {
val workers: Int = 10
private lazy val actors = new Array[T](workers)
override def start() = {
for (i <- 0 to (workers - 1)) {
// error below: classtype required but T found
actors(i) = new T
actors(i).start
}
super.start()
}
// error below: method mailboxSize cannot be accessed in T
def workerMailboxSizes: List[Int] = (actors map (_.mailboxSize)).toList
.
.
.
Run Code Online (Sandbox Code Playgroud)
注意第二个错误表明它知道actor项是"T",但不是"T"是actor的子类,而是在类通用定义中受到约束.
如何纠正此代码(使用Scala 2.8)?
作为OO开发人员,也许我很难看到它的价值.他们给了什么附加价值?它们适合OO世界吗?
我有一个自定义对象“objMain”,其中我有几个属性以及对象类型的属性(即像子对象)。
objMain 具有以下属性: 1. 名称 [类型:字符串] 2. 描述 [类型:字符串] 3. StartDate [类型:日期时间] 4. ObjSubject [类型:对象] - 这是自定义类型
ObjAddress 具有以下属性 1.SubjectID [类型:int] 2.SubjectName [类型:string]
我需要显示与该名称相关的名称、描述、开始日期和主题名称。它在名称、描述和开始日期字段中显示数据,但在主题名称字段中不显示数据。
Amod Kumar ABCDEFG 19/08/2009 物理 化学 数学
阿莫德·库马尔 ABCDEFG 19/08/2009
谁能告诉我如何做到这一点。我还尝试仅在表中显示主题名称,它在报告中不显示任何内容。我正在定义报告的数据源,即 objMain 和 ObjSubject。
我需要在 MFC /VC++ 中创建一个组合框,用户只能在其中输入或选择 0 到 9999 之间的值。我怎样才能实现这个功能。
请帮忙
我只是想知道如何从最后一个值而不是第一个值(使用foreach)获取变量的内容,
$variable = [1,2,3,4];
Run Code Online (Sandbox Code Playgroud)
如何打印4然后打3等等(如果变量的大小未知,是否可以先获取最后一个值).
谢谢
iphone ×3
object ×2
closures ×1
dictionary ×1
django ×1
foreach ×1
generics ×1
ios ×1
mfc ×1
objective-c ×1
oop ×1
php ×1
postgresql ×1
python ×1
rdlc ×1
report ×1
reverse ×1
scala ×1
uitextview ×1
visual-c++ ×1