小编Mar*_*ark的帖子

使用IEnumerable而不使用foreach循环

我必须在这里找到一些简单的东西.

请使用以下代码:

public IEnumerable<int> getInt(){
  for(int i = 0; i < 10; i++){
   yield return i;
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以这样称呼:

foreach (int j in obj.getInt()){
  //do something with j
}
Run Code Online (Sandbox Code Playgroud)

如何在没有foreach循环的情况下使用getInt方法:

IEnumerable<int> iter = obj.getInt();
// do something with iter ??
Run Code Online (Sandbox Code Playgroud)

谢谢.

EDITS

对于那些想知道为什么我想要这个的人.我正在迭代两件事:

IEnumerator<int> iter = obj.getInt().GetEnumerator();
foreach(object x in xs){
  if (x.someCondition) continue;
  iter.MoveNext();
  int n = iter.current();
  x.someProp = n;
  etc...
}
Run Code Online (Sandbox Code Playgroud)

c# ienumerable yield-return

35
推荐指数
3
解决办法
5万
查看次数

导入时传递变量

假设您在首次导入模块/类时需要花费一些时间.此功能取决于传入的变量.只需在加载模块/类时完成.然后,该类的所有实例都可以使用结果.

例如,我正在使用rpy2:

import rpy2.robjects as robjects

PATH_TO_R_SOURCE = ## I need to pass this
robjects.r.source(PATH_TO_R_SOURCE, chdir = True) ## this takes time

class SomeClass:
  def __init__(self, aCurve):
    self._curve = aCurve

  def processCurve(self):
    robjects.r['someRFunc'](robjects.FloatVector(self._curve))
Run Code Online (Sandbox Code Playgroud)

我是否坚持创建一个模块级功能,我打电话来做这项工作?

import someClass
someClass.sourceRStuff(PATH_TO_R_SOURCE)
x = someClass.SomeClass([1,2,3,4])
etc...
Run Code Online (Sandbox Code Playgroud)

python import

32
推荐指数
4
解决办法
3万
查看次数

得到kwargs Inside Function

如果我有这样的python函数:

def some_func(arg1, arg2, arg3=1, arg4=2):
Run Code Online (Sandbox Code Playgroud)

有没有办法确定哪些参数是通过关键字从函数内部传递的?

编辑

对于那些问我为什么需要这个的人,我没有真正的理由,它出现在一次谈话中,好奇心让我变得更好.

python introspection kwargs

23
推荐指数
3
解决办法
9592
查看次数

Tkinter:在主循环中调用事件

你如何event从一个单独的对象调用tkinter ?

我正在寻找像wxWidgets这样的东西wx.CallAfter.例如,如果我创建一个对象,并将其传递给我的Tk根实例,然后尝试从我的对象调用该根窗口的方法,我的应用程序将锁定.

我能想到的最好的after方法是使用方法并从我的单独对象中检查状态,但这似乎很浪费.

python user-interface communication tkinter

16
推荐指数
2
解决办法
2万
查看次数

迭代多个std :: vector

我在这里和其他地方读过,当你使用索引迭代std :: vector时,你应该:

std::vector <int> x(20,1);
for (std::vector<int>::size_type i = 0; i < x.size(); i++){
  x[i]+=3;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您正在迭代两个不同类型的向量,那该怎么办:

std::vector <int> x(20,1);
std::vector <double> y(20,1.0);
for (std::vector<int>::size_type i = 0; i < x.size(); i++){
  x[i]+=3;
  y[i]+=3.0;
}
Run Code Online (Sandbox Code Playgroud)

假设这样做是否安全

std::vector<int>::size_type

与...的类型相同

std::vector<double>::size_type
Run Code Online (Sandbox Code Playgroud)

使用std :: size_t会安全吗?

谢谢.

c++ iterator stl

10
推荐指数
1
解决办法
5561
查看次数

SQL WHERE LIKE与选项卡

好像这么简单.我需要使用LIKE运算符指定WHERE条件,并在表达式中包含一个选项卡.

SELECT * FROM table WHERE field LIKE '%Run1[TAB]%';
Run Code Online (Sandbox Code Playgroud)

我试过\ t,\ t,%t和char运算符.

我在Sqlite工作.

谢谢.

sql sqlite where-clause

8
推荐指数
1
解决办法
8898
查看次数

Ruby中类似Python的"as"关键字(用于命名空间)

我只是在看这个问题.突然出现的第一个想法是,ruby必须有一些类似"as"类型的关键字,比如Python的导入,以帮助避免命名空间污染.我已经google了一下,但似乎建议将代码包装在模块中以避免ruby的命名空间问题.这似乎有问题,因为如果两个模块具有冲突的名称会怎样.

那么,ruby的任何"as"类型关键字都需要?

ruby python module

7
推荐指数
1
解决办法
483
查看次数

如何控制电源按钮按下关机?

我正在使用自助服务终端风格的应用程序,我需要在按下电源按钮时控制PC的关闭/重启.感谢这篇文章,我大约有90%的路在那里.

  1. 在控制面板中设置acpi电源按钮按下动作以关闭.
  2. 收听WndProc消息WM_QUERYENDSESSION
  3. 收到时发出完全无证件:

    [DllImport("user32.dll", SetLastError = true)]
    static extern int CancelShutdown();
    
    Run Code Online (Sandbox Code Playgroud)
  4. 从WndProc返回并打开我自己的消息框,要求用户关机/重新启动或取消,并回复他们的操作.

如果我从任务栏进行启动/关闭,一切都很顺利(我可以尽快发出这些论文).第一次按下电源按钮时,一切都运行良好.在接下来的电源按钮按下时,我会在收到WM_QUERYENDSESSION消息之前看到一分钟左右的延迟.

是否有关于Windows发布ACPI事件的频率的设置或注册表项?我知道这不是硬件,因为在linux下,同一台机器会像我按下按钮一样快速启动ACPI事件.

谢谢.

c# wndproc acpi windows-7-embedded

7
推荐指数
1
解决办法
2253
查看次数

highcharts分散有4个象限

免责声明:我对使用这些图表框架非常陌生,而且我对javascript也不是很棒.

我在这里使用高图创建了一个散点图.

它必须改变,有4个颜色象限像这样一个在这里.

问题是这个没有负y轴和正y轴,我不能为我的生活弄清楚如何在数据中间的某处发生这种情况.任何帮助是极大的赞赏.

javascript jquery highcharts

7
推荐指数
1
解决办法
6325
查看次数

为什么我的Python C Extension会泄漏内存?

下面的函数接受一个python文件句柄,从文件中读取打包的二进制数据,创建一个Python字典并返回它.如果我无休止地循环它,它将不断消耗RAM.我的RefCounting出了什么问题?

static PyObject* __binParse_getDBHeader(PyObject *self, PyObject *args){

PyObject *o; //generic object
PyObject* pyDB = NULL; //this has to be a py file object

if (!PyArg_ParseTuple(args, "O", &pyDB)){
    return NULL;
} else {
    Py_INCREF(pyDB);
    if (!PyFile_Check(pyDB)){
        Py_DECREF(pyDB);
        PyErr_SetString(PyExc_IOError, "argument 1 must be open file handle");
        return NULL;
    }
}

FILE *fhDB = PyFile_AsFile(pyDB);

long offset = 0;
DB_HEADER *pdbHeader = malloc(sizeof(DB_HEADER));
fseek(fhDB,offset,SEEK_SET); //at the beginning
fread(pdbHeader, 1, sizeof(DB_HEADER), fhDB );
if (ferror(fhDB)){
    fclose(fhDB);
    Py_DECREF(pyDB);
    PyErr_SetString(PyExc_IOError, "failed reading database header");
    return NULL; …
Run Code Online (Sandbox Code Playgroud)

c python refcounting

5
推荐指数
2
解决办法
4349
查看次数