我想创建一个像属性一样工作的装饰器,只调用一次装饰函数,后续调用总是返回第一次调用的结果.一个例子:
def SomeClass(object):
@LazilyInitializedProperty
def foo(self):
print "Now initializing"
return 5
>>> x = SomeClass()
>>> x.foo
Now initializing
5
>>> x.foo
5
Run Code Online (Sandbox Code Playgroud)
我的想法是为此编写一个自定义装饰器.所以我开始了,这就是我走了多远:
class LazilyInitializedProperty(object):
def __init__(self, function):
self._function = function
def __set__(self, obj, value):
raise AttributeError("This property is read-only")
def __get__(self, obj, type):
# problem: where to store the value once we have calculated it?
Run Code Online (Sandbox Code Playgroud)
如您所见,我不知道存储缓存值的位置.最简单的解决方案似乎只是维护字典,但我想知道是否有更优雅的解决方案.
编辑很抱歉,我忘了提到我希望该房产是只读的.
解决:你们是最好的!我把goyouidiot_Click它的内容带到了一个叫做的方法displayResult,然后:
private void t1_TextChanged(object sender, EventArgs e)
{
displayResult();
}
Run Code Online (Sandbox Code Playgroud)
我之前怎么没想到的?大声笑,thx
这是原始的信息:
没有人在前我建立了一个计算15个数字的小软件.单击buttun时代码开始运行,但是我想把这段代码放在一个开始用程序运行的infinate循环中,所以答案将自动更新.这是我的代码:
Run Code Online (Sandbox Code Playgroud)private void goyouidiot_Click(object sender,EventArgs e){....}
那些不理解的人:
我有15个文本框,我希望该方法在文本框的内容发生变化时运行.
我正在做一些HiD编程,我正在尝试找到HiD.lib文件添加到我的.pro Qt文件中.但是我找不到它.以下是所述文件的摘录:
win32:LIBS+=-lSetupAPI.lib -L"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" \
-lKernel32.lib -L"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" \
-lHid.lib -L"" #Looking for the relevant path
谢谢你的帮助.
编辑:这个图书馆现在可以埋没在别的东西吗?
来自.net背景的Objective-C和Core Data的全新内容我真的想把我的所有获取请求都放到我可以调用的某种类中,最好是静态地获取我的对象,例如:
ObjectType*myObject = [CoreDataDAL GetObject:ID];
任何人都有实现这个的模式?
我现在正在通过一个攻击我的方式,但它可能不太正确,我会在发布时发布代码.
EIDT:这是我现在的代码 - 似乎工作得很好 - 如果我走错路,请把它撕掉 - 这是基本的DAL:
#import "CoreDataDAL.h"
#import "CoreDataAppDelegate.h"
@implementation CoreDataDAL
@synthesize managedObjectContext;
-(id)init {
if (self=[super init]) {
CoreDataAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = appDelegate.managedObjectContext;
}
return self;
}
-(Client *) GetClient:(NSString *) ClientID{
/* Client Fetch Request */
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *entityType = [NSEntityDescription entityForName:@"Client" inManagedObjectContext:managedObjectContext];
[request setEntity:entityType];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"ClientID==%@",ClientID];
[request setPredicate:predicate];
NSError *error;
NSArray *entities = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; …Run Code Online (Sandbox Code Playgroud) 据我所知,Java正在使用操作系统线程(与Erlang相反),这意味着在Windows和Linux上使用Java创建的线程可能表现不同.
Windows和Linux上的Java线程有什么不同吗?最大的区别是什么?这可能只是性能上的差异?
如何在JavaScript中处理未定义的值?
if (oldins == ins)
Run Code Online (Sandbox Code Playgroud)
oldins 没有定义.
我该如何检查?
我怎样才能做到这一点 ?我可以在VS2010 IDE中工作,但是可以使用VS C++ 6.0编译器进行编译吗?我可以在VS2010 IDE中工作并使用VS2008编译器进行编译吗?
visual-studio-2010 visual-c++ visual-studio-6 visual-c++-2010
来自MasterExam:
哪些陈述是真的?(选择所有适用的选项)
A.是一种关系总是依赖于继承
B.is-a关系总是依赖于实例变量
C.is-a关系总是需要至少两种类类型
D.是一种关系总是依赖于多态性
E.是一种关系总是紧密耦合
正确答案:A,C,D
我看不出A,C或D中的任何一个是正确的.
一个Object对象IS-A对象.String对象IS-A String.每个语句中只有一个类类型,不适用继承或多态.
我的理由是错的还是答案不正确?
通过Scala 2.8 Predef类,我发现有一种"本地"方法.尽管我可以说,它与Predef.identity相同,只是有"@inline"注释.它有什么用,为什么它在Predef中很重要(因此可以在Scala的任何地方使用)?
我使用ruby lib(http://amazon.rubyforge.org/)在Amazon S3中存储了许多图像
我不在乎超过1周的照片,然后在S3中释放空间我必须删除那些照片.
我知道有一种方法可以删除某个存储桶中的对象:
S3Object.delete 'photo-1.jpg', 'photos'
Run Code Online (Sandbox Code Playgroud)
有没有办法自动删除超过一周的图像?
如果它不存在,我将不得不写一个守护进程来做到这一点:-(
谢谢
更新:现在有可能,检查罗伯托的答案.
java ×2
amazon-s3 ×1
c# ×1
c++ ×1
core-data ×1
decorator ×1
descriptor ×1
inheritance ×1
ipad ×1
iphone ×1
javascript ×1
linux ×1
loops ×1
objective-c ×1
polymorphism ×1
python ×1
qt-creator ×1
qt4 ×1
ruby ×1
scala ×1
scjp ×1
visual-c++ ×1
windows ×1