小编Asi*_*ics的帖子

脚本在PyCharm中运行,但不是从命令行运行

当我尝试从PyCharm IDE运行我的程序时,一切正常但如果我输入Fedora:

python myScript.py
Run Code Online (Sandbox Code Playgroud)

在shell提示符中,我从模块中获得了一个导入错误.

ImportError : No modue named myDependency

PyCharm做什么允许解释器在从IDE启动时找到我的依赖项?如何让我的脚本找到它的依赖项,以便可以使用单一命令启动它?

python fedora startup

19
推荐指数
3
解决办法
1万
查看次数

将类方法绑定到Tkinter信号

我正在尝试使用Tkinter将类方法绑定到信号,但出现以下错误:

TypeError:event_foo()恰好接受1个参数(给定2个)

过去我经常使用绑定,但是没有任何问题,但是我不明白第二个参数(我显然不知道该给出的)来自何处。

代码示例:(简体)

class Controller:
    def__init__(self, myVar, myWidget):
        self.myVar = myVar
        self.myWidget = myWidget

        self.connect(self, myWidget, "<Double-Button-1>", event_foo)

    def event_foo(self):
        """ Does stuff """

    #Simplified to a wrapper, real function does other actions
    def connect(self, widget, signal, event) 
        widget.bind(signal, event)
Run Code Online (Sandbox Code Playgroud)

python tkinter

4
推荐指数
1
解决办法
2774
查看次数

处理相同功能但在C中使用不同操作符的有效方法

让我们说在CI中有2个完全相同的方法但是1加上值而另一个加法它:

void decreaseValue(handle* myData, uint8_t amount)
{
    /* Stuff going on */
    myData->someAttribute -= amount;
    /* Stuff going on */
}

void increaseValue(handle* myData, uint8_t amount)
{
    /* Stuff going on */
    myData->someAttribute += amount;
    /* Stuff going on */
}
Run Code Online (Sandbox Code Playgroud)

除了运算符之外,这两个函数完全相同,导致相当多的重复代码行不是微不足道的.

是否有安全,便携,非丑陋的处理方式,或者我坚持使用ctrl + c ctrl + v?

开关盒的可能性:

typedef enum
{
    ADD,
    SUBSTRACT
}operator;

void modifyValue(handle* myData, uint8_t amount, operator op)
{
    /* Stuff going on */
    switch(op){
    case ADD: 
        myData->someAttribute += amount;
        break;
    case SUBSTRACT:
        myData->someAttribute -= amount; …
Run Code Online (Sandbox Code Playgroud)

c operators

4
推荐指数
1
解决办法
104
查看次数

C 中文字字符串的内存使用情况

当您将字符串替代品传递给参数中的函数而不是指向字符数组的指针时,编译器如何管理内存?

例子:

static const char myString[LENGTH] = "A string";
myFunction(myString);
Run Code Online (Sandbox Code Playgroud)

和:

myFunction("A string");
Run Code Online (Sandbox Code Playgroud)

通过指针传递静态常量(很可能存储在 ROM 中)是否会对 RAM 使用产生显着的好处?

当传递字符串文字时,它是否完全复制为局部变量,sizeof(myString)或者编译器“知道”通过引用传递它,因为在 C 中数组总是通过引用传递?

c memory compiler-construction string string-literals

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

三元运算符的奇怪枚举行为

我正在写一个非常简单的三元运算符和我的一个枚举,我偶然发现了一个非常奇怪的错误(对我来说......).鉴于这段代码:

typedef enum
{
    first = 0,
    second,
    last
}myEnum;

myEnum myVar = first;

(myVar < second) ? myVar++ : myVar = last;
Run Code Online (Sandbox Code Playgroud)

编译器发给我以下错误:

错误:左值作为赋值的左操作数需要左值

好像我只是将三元组更改为if/else块,如下所示:

if(myVar < second)
{
    myVar++;
}
else
{
    myVar = last;
}
Run Code Online (Sandbox Code Playgroud)

一切都编译好,工作正常.有人可以解释为什么写成三元组的完全相同的代码无法编译?我错过了什么?

c enums

0
推荐指数
1
解决办法
678
查看次数