我希望能够创建父类X的实例,并使用字符串"Q"作为额外参数.
此字符串将是一个名称是用于父类X的一个子类Q上的标识符
我希望父类的实例,成为(或代替)的子类的实例.
我知道这可能是一个经典问题(错误?).经过一番搜索后,我找不到合适的解决方案.
我自己想出了以下解决方案;
我添加了一个可能的标识符字典作为其基类实例的键到父类的init -method.
然后将相应子类的类 -attribute 分配给当前实例类 -attribute.
我要求init -method 的参数不是默认值来防止无限循环.
以下是代码在实践中的样子示例;
class SpecialRule:
""""""
name="Special Rule"
description="This is a Special Rule."
def __init__(self, name=None):
""""""
print "SpecialInit"
if name!=None:
SPECIAL_RULES={
"Fly" : FlyRule(),
"Skirmish" : SkirmishRule()
} #dictionary coupling names to SpecialRuleclasses
self.__class__= SPECIAL_RULES[name].__class__
def __str__(self):
""""""
return self.name
class FlyRule(SpecialRule):
""""""
name="Fly"
description="Flies."
def __init__(self):
""""""
print "FlyInit"+self.name
SpecialRule.__init__(self)
def addtocontainer(self, container):
"""this instance messes with the attributes of its containing …Run Code Online (Sandbox Code Playgroud) 我想守护一个python进程,现在想要问一个守护进程是否运行好,如父进程并调用另一个打开10-30个线程的类.
我打算为一组服务器编写一个监控脚本,并希望每隔5分钟检查一次每台服务器,每个服务器都要检查5分钟.
我想这样(有点说,ps auxf样式输出):
|monitor-daemon.py
\-check-server.py
\-check-server.py
Run Code Online (Sandbox Code Playgroud)
....
谢谢!
目前,我有4个解决方案是独立的项目,但有相当多的重复代码,当涉及到的应用程序的几个领域.
目前它只是一些表格及其相关代码.
当我想要改变或改进某些东西时,我必须复制并粘贴到所有相关项目.
我看着为.dll文件/类库的解决方案之一中创建一个新的项目,但我觉得这是不正确的.(请说如果我错了).
因为它是所有应用程序的组件,我决定创建.dll文件/类库一个新的解决方案,并期待在移动共享代码交给那个 - 不过,已经永远也不会消失下来之前,这条路线,我有哪些选择从这里?
如果我需要进行简单的更改并在所有项目中更新它,或者相反,我是否应该始终在Visual Studio的单独实例中处理共享组件,我是否能够将此解决方案包含在其他解决方案中应用程序使用它?
我有一个我在A类中使用的NSMutableArray的堆栈类别
@implementation NSMutableArray (StackUtil)
- (void)push:(id)stackObject {
[self addObject:stackObject];
}
- (id)pop {
id retVal = [[self lastObject]retain];
[self removeLastObject];
return [retVal autorelease];
}
@end
Run Code Online (Sandbox Code Playgroud)
如何正确地将此类别包含在与A类无关的B类中?此外,我注意到,当我#IMPORT A级到C级方法的工作类别的头,但我得到了"对象可能不响应Push消息"警告.可能有人清理如何类别"重用",为什么他们的名字(StackUtil在这种情况下),以及如何使用它们.
有没有办法将浮点数舍入为2分?例如:3576.7675745342556成为3576.76.
我在Perl脚本中有一些正确但速度慢的正则表达式.我正在考虑通过添加额外的+运算符(即*+而不是*和++而不是+)来尝试提高性能,以禁用回溯.我尝试更换所有这些并且正则表达式停止工作......这么简单的解决方案.我怎么知道在哪里可以添加它们不会破坏正则表达式?
任何人都可以解释如何使这个代码工作?
echo '<div id="panel1-under">Welcome <?php echo "$_SESSION['username']"; ?></div>';
Run Code Online (Sandbox Code Playgroud)
我试过删除单引号(echo '<div id="panel1-under">Welcome <?php echo "$_SESSION[username]"; ?></div>';),但它不起作用.
我有以下一点代码:
NSData *data = [NSData dataWithContentsOfFile:filePath options:0 error:&fileError];
NSString *recipe = @"";
if (fileError == nil) {
recipe = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"Converted Recipe as: %@",recipe);
NSLog(@"Original Data was: %@",data);
} else {
NSLog(@"Error reading file: %@", [fileError localizedDescription]);
}
Run Code Online (Sandbox Code Playgroud)
问题是有时stringWithUTF8String返回null,有时它正确返回文件的内容...... SAME文件.有时它会起作用,有时则不起作用.这是一个来自日志的片段,当它没有....这对我意味着文件读取工作,但由于某种原因,这次转换失败了.如果我再次这样做(这被称为tableView didSelectRowAtIndexPath的结果:所以我可以点击另一行,然后回到这一行.
2010-08-01 16:14:29.031 RecipeBrowse[52056:207] Converted Recipe as: (null)
2010-08-01 16:14:29.037 RecipeBrowse[52056:207] Original Data was: <426c6163 6b656e65 64204361 626f2046 69736820 5461636f 730a0a49 4e475245 4449454e 54533a0a 0a2d200a 0a0a4d45 54484f44 3a0a0a42 4c41434b 454e4544 20434142 4f204649 53482054 41434f53
Run Code Online (Sandbox Code Playgroud)
任何想法如何使这更可靠?
我正在从网上下载文件,即使我正在做,它也会失败:
对于查询中的p:
try:
except IOError as e:
print e;
Run Code Online (Sandbox Code Playgroud)
如果有错误,我想记录它,然后继续下一个文件.
在这个循环中,我试图下载一个图像,如果由于某种原因文件名不好,或者网站关闭等等,我想继续使用for循环中的下一个项目.
是否有一个更通用的错误,不会失败并继续处理?
另外,如何将错误记录到文件中?
我已经看过几十次问这个问题但从未回答过.
你如何调整UIImage的大小(特别是从UIImagePickerController相机返回的).当我尝试任何方法时,我会得到20到40MB的内存峰值.它确实消失但我知道在某些硬件上这是完全不可接受的.
我尝试过使用以下操作的方法:drawInRect:,CGContextDrawImage(),imageWithCGImage:scale:orientation:
我知道生活在内存中的未压缩图像比磁盘上占用更多空间,但似乎最常见的UIImage调整大小操作涉及创建图像数据的副本.
即使Apple建议立即调整相机拍摄的照片大小.然而(b/c我相信他们知道这个话题非常复杂)他们没有就如何管理它提供任何指导.特别是在返回图像数据的时候该怎么做.
有没有人有一个平滑的方法来调整大型UIImage的大小,同时节省内存?我知道这是一项艰巨的任务.