我有一个(只读)可执行文件"myexec",我总是执行后跟输入"input1"(一个字符串),然后我继续我的业务""和"退出"我感觉如下:
$ myexec
> input1
> do something else for as long as I like
> exit
Run Code Online (Sandbox Code Playgroud)
我想做的是使用输入"input1" 自动执行"myexec",然后能够"只要我喜欢就做其他事情".从我所看到的,我的选择是:
$ myexec <<< "input1"
Run Code Online (Sandbox Code Playgroud)
要么
$ echo "input1" | myexec
Run Code Online (Sandbox Code Playgroud)
要么
$ myexec << EOF
input1
EOF
Run Code Online (Sandbox Code Playgroud)
但这些方法的问题是它们在读取"input1"后终止"myexec".如何避免EOF /退出/终止?
在使用Django模板复数过滤器的句子中定义的最佳方法是什么?例如:
<p>
Your item{{ items|length|pluralize }}
is/are
currently being processed and will ship soon.
</p>
Run Code Online (Sandbox Code Playgroud) 我正在使用Python 2.7.
按照惯例,内置类似方法__iter__,__init__,__str__等有双下划线,以确定它们的方式.为什么功能不next()具备此功能?
在这里设有旁边的其他内置功能:https://docs.python.org/2/library/functions.html,这似乎并不像一个非常一致的约定.
(Django版本1.9,Python版本3.4.3,使用虚拟环境制作 mkvirtualenv --python=/usr/bin/python3.4 django19)
我一直非常密切地关注Django教程,直到第5部分没有任何问题:
https://docs.djangoproject.com/en/1.9/intro/tutorial05/
虽然严格来说,问题与第5部分无关,但请耐心等待.我正在遵循pythonanywhere框架中的教程,因为最终我想在那里托管一个网站.因此,我也在关注pythonanywhere提供的"关注Django教程":
https://help.pythonanywhere.com/pages/FollowingTheDjangoTutorial
虽然在教程的第5部分的建议中没有预料到我的问题.现在问题 - 在Django教程中的重点是:
要检查错误是否确实存在,请使用Admin创建一个日期位于将来的问题,并使用shell检查方法
在链接到shell之后,我尝试(按照链接中的指示)运行:
django-admin shell --plain
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息
(django19)19:11 ~/mysite $ django-admin shell --plain
Traceback (most recent call last):
File "/home/me/.virtualenvs/django19/lib/python3.4/site-packages/django/core/management/base.py", line 348, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/me/.virtualenvs/django19/lib/python3.4/site-packages/django/core/management/base.py", line 391, in execute saved_locale = translation.get_language()
File "/home/me/.virtualenvs/django19/lib/python3.4/site-packages/django/utils/translation/__init__.py", line 176, in get_language
return _trans.get_language()
File "/home/me/.virtualenvs/django19/lib/python3.4/site-packages/django/utils/translation/__init__.py", line 57, in __getattr__
if settings.USE_I18N:
File "/home/me/.virtualenvs/django19/lib/python3.4/site-packages/django/conf/__init__.py", line 55, in __getattr__
self._setup(name)
File "/home/me/.virtualenvs/django19/lib/python3.4/site-packages/django/conf/__init__.py", line 41, in _setup
% (desc, ENVIRONMENT_VARIABLE)) …Run Code Online (Sandbox Code Playgroud) 我有一个类,如A包含一个类型的非平凡成员变量LargeType:
class A {
public:
LargeType SetVariable(LargeType var){_var = var;}
LargeType GetVariable(){return _var;}
private:
LargeType _var;
};
Run Code Online (Sandbox Code Playgroud)
我遍历一个非常大的数据集,并在每次迭代中检索一个a类型的对象A.我发现以下代码(每次迭代至少发生一次):
//---- Version#1
LargeType var = a.GetVariable();
if(anotherLargeType == var){ DoSomething();}
DoOperation(var);
Run Code Online (Sandbox Code Playgroud)
运行速度比以下代码慢:
//---- Version#2
if(anotherLargeType == a1.GetVariable();){ DoSomething();}
DoOperation(a1.GetVariable());
Run Code Online (Sandbox Code Playgroud)
我可以理解为什么版本#1比版本#2运行得慢:每次迭代都会调用一个复制构造函数,因此需要做更多的工作.但是,我认为版本#1处理起来更好,而不是必须a1.GetVariable()在一个循环中输入多次.有没有办法重写我的类,以便版本#1和版本#2的性能可比?