如何使用100个随机值在Perl中生成数组,而不使用循环?
我必须避免所有类型的循环,例如"for",foreach",while.这是我的练习,来自我的实验室.我找不到解决这个问题的方法,因为我是Perl的新手.
在C中,生成这个数组非常容易,但我不知道如何在Perl中实现它.
我希望表单仅在 ChoiceField 中显示当前用户的帐户。我尝试执行以下操作,但不起作用。
编辑:抱歉,我忘了提及我添加的“if kwargs”,因为 TransForm() 没有显示任何字段。我想这是错误的,但我不知道另一种方式。
视图.py:
def in(request, account):
if request.method == 'POST':
form = TransForm(request.user, data=request.POST)
if form.is_valid():
...
else:
form = TransForm()
context = {
'TranForm': form,
}
return render_to_response(
'cashflow/in.html',
context,
context_instance = RequestContext(request),
)
Run Code Online (Sandbox Code Playgroud)
表格.py:
class TransForm(ModelForm):
class Meta:
model = Trans
def __init__(self, *args, **kwargs):
super(TransForm, self).__init__(*args, **kwargs)
if kwargs:
self.fields['account'].queryset = Account.objects.filter(user=args[0])
Run Code Online (Sandbox Code Playgroud) 如何向按钮对象添加"可绘制的左侧"图标?
我的意思是这样的:
Button button = new Button();
button.setDrawableLeft(R.drawable...);
Run Code Online (Sandbox Code Playgroud) 我被要求用PHP做一个项目,并确保它是面向对象的.我已经完成了OO,我已经完成了PHP,但从来没有.
OO PHP(继承/多态)之外的主要好处似乎是代码组织.没关系; 我这样做.但是,如果我真的应该为每个"对象"创建实例,那么我会陷入困境.
对我而言(也许我在这里天真),一个Web应用程序就是要做出非常简短的无状态请求来改变或检索数据库中的记录.对象不能在请求之间保留.因此,从数据库加载数据,从该数据构造对象,进行小更新,将数据从对象保存回数据库,然后抛弃对象,感觉相当无意义.加载/保存代码似乎是无用的工作.[澄清:浪费开发时间,不处理时间......不太关心开销]
另一种方法是让一堆单例(或带有静态方法的类)只为数据库层提供一个漂亮的,有组织的抽象层.我想以这种方式编写代码并不会感觉真的是OO.我错过了什么或者那种风格好吗?
这可能是一个新手的问题,但谷歌出人意料地没有提供答案.
我有这种相当人为的方法
T HowToCast<T>(T t)
{
if (typeof(T) == typeof(string))
{
T newT1 = "some text";
T newT2 = (string)t;
}
return t;
}
Run Code Online (Sandbox Code Playgroud)
来自C++背景我希望这可以工作.但是,无法编译"无法将类型'T'隐式转换为字符串"和"无法将类型'T'转换为字符串"以进行上述两种分配.
我要么在概念上做错了,要么只是有错误的语法.请帮我整理一下.
谢谢!
我不清楚如何正确地命名这个问题.
情况1
假设我有以下目录结构.
foo
|
+- bar/__init__.py
|
+- bar.py
Run Code Online (Sandbox Code Playgroud)
如果我有
from foo import bar
Run Code Online (Sandbox Code Playgroud)
我如何知道导入哪个栏(bar.py或bar/__init__.py)?有没有简单的方法来自动检测这种情况?
案例2
foo
|
+- foo.py
|
+- other.py
Run Code Online (Sandbox Code Playgroud)
如果other.py有这条线
import foo
Run Code Online (Sandbox Code Playgroud)
我怎么知道导入哪个foo(foo或foo.foo)?再一次,是否有任何简单的方法来自动检测这种情况?
我想使用boost :: program_options解析多个命令行参数.但是,一些参数是用双引号括起来的字符串.这就是我所拥有的 -
void processCommands(int argc, char *argv[]) {
std::vector<std::string> createOptions;
boost::program_options::options_description desc("Allowed options");
desc.add_options()
("create", boost::program_options::value<std::vector<std::string> >(&createOptions)->multitoken(), "create command")
;
boost::program_options::variables_map vm;
boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
boost::program_options::notify(vm);
if(vm.count("create") >= 1) {
std::string val1 = createOptions[0];
std::string val2 = createOptions[1];
...
// call some function passing val1, val2.
}
}
Run Code Online (Sandbox Code Playgroud)
我这样做很好
cmdparsing.exe --create arg1 arg2
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时不起作用
cmdparsing.exe --create "this is arg1" "this is arg2"
Run Code Online (Sandbox Code Playgroud)
来自windows命令行.对于第二个选项,它将转换为["this" "is" "arg1" "this" "is" "arg2"]createOptions向量.因此,val1获得"this"和val2得到 …
c++ windows boost command-line-arguments boost-program-options
我遇到了StyleCop的问题让我疯了.我最近将它安装在一台新机器上,每次我去编辑主设置文件(通过Visual Studio或StyleCop编辑器)时,我都会收到以下错误:
无法保存设置文件:拒绝访问路径"C:\ Program Files(x86)\ Microsoft StyleCop 4.4.1.1\Settings.StyleCop".
如果我以管理员身份运行VS,我可以编辑该文件,但是StyleCop for ReSharper似乎无法识别规则更改.我已经卸载并重新安装了具有相同最终结果的各种版本.
有什么想法吗?
我在计算生物学实验室工作,在那里我们有几个人从事多个项目,主要是在R(这是我关心的这篇文章).在过去,人们只需为每个项目开发代码,这些代码可能涉及也可能不涉及从先前项目复制的样板代码.多年来我推动的一件事就是为这个混乱带来一些集中式结构,并让人们识别出常见的模式,这样我们就可以将这些重复/共同的代码块转换成包,因为人们可能会认为这是很多原因.一件好事.所以现在我们的人们在他们的项目特定脚本中使用了集中的包/例程.
这里有一个问题.我们拥有权力的授权,即每个项目的每个脚本都需要尽可能100%可重复(这包括我们可以直接访问的所有代码的100%,包括我们的包).也就是说,如果我在包条中使用参数A调用函数foo来获取结果X,那么4年后我应该得到完全相同的结果.(由于错误导致的错误输出在这里除外)
可重复性的主题现在在各个圈内的R中出现,但通常似乎在过程的再现性(例如,晕影)方面进行讨论.这不是一回事 - 我今天可以运行一个小插图然后在6个月后使用更新的包运行相同的代码并获得截然不同的结果.
已经达成一致的解决方案(我不是其中的粉丝)是,如果需要在非向后兼容的更改中更改函数或包,则只需获取新名称.因此,如果我们需要从根本上改变函数foo(),它将被称为foo2(),如果需要彻底改变,它将被称为foo3().这可以确保调用foo()的任何脚本始终获得原始结果,同时允许事物在包存储库中前进.它确实有效,但我真的不喜欢这个 - 它在美学上看起来非常混乱,我担心随着时间的推移它会导致包裹bar,bar2,bar3,bar4 ...函数foo1,foo2,foo3等的大规模混乱.
问题是我没有提出一个更好的替代解决方案.一种可能性是注意软件包的版本号,R等,并确保加载它们,但这有多个问题 - 其中最重要的是它依赖于正确的软件包版本规则并且容易出错.此外,这种替代方案已被拒绝;)理想情况下,我们所拥有的是某种开发和释放的概念,因为大多数这些变化往往更早发生,然后平稳发生变化的频率更低.OTOH devel在这里真正意味着"实际上并不是在一个包中"(我们这样做),但很难确切地确定在什么时候运送东西是正确的.当你认为自己安全的那一刻,那就是你认识到的那一刻
所以考虑到所有这些,我很好奇是否有其他人处理过类似情况,以及他们如何解决问题.
编辑:只是为了清楚,通过非向后兼容,我不只是谈论API等,而是输出给定的一组输入.
我的rails应用程序中有两个模型,有很多并且属于关联.类别有很多项目,项目属于类别.
这些模型通过Item模型中的category_id列以正常方式关联.
我正在寻找一种快速查找数据库中所有元素的方法.即查找所有没有关联项目的类别和没有关联类别的项目.
例如,如果我有一个category_id为7的项目,但是已删除了具有id 7的类别,那么这将被视为已损坏.