小编Jos*_*hua的帖子

来自兄弟文件夹的Python导入模块

我已经经历了许多Python相关的导入问题,但我无法理解这个问题/让它工作......

我的目录结构是:

Driver.py

A/
      Account.py
      __init__.py

B/
      Test.py
      __init__.py
Run Code Online (Sandbox Code Playgroud)

====================

Driver.py

from B import Test
Run Code Online (Sandbox Code Playgroud)

=========

Account.py

class Account:
def __init__(self):
    self.money = 0
Run Code Online (Sandbox Code Playgroud)

====================

Test.py

from ..A import Account
Run Code Online (Sandbox Code Playgroud)

==================

当我试图跑

python Driver.py

我收到了错误

Traceback(最近一次调用最后一次):

来自B进口测试

Driver.py从..A导入帐户输入"B/Test.py",第1行

ValueError:尝试相对导入超出toplevel包

python import module relative-path

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

在bash脚本中添加时间戳到日志文件

我的脚本如下

if ps ax | grep -v grep | grep ./program > /dev/null
    then
        exit
    else
        echo "---------------------------------------------------" >> Debug.log
        echo "Starting program at:  $(date)" >> Debug.log
        ./program >> Debug.log 2>&1
fi
exit
Run Code Online (Sandbox Code Playgroud)

通过crontab,这个脚本每分钟运行一次.它检查某个程序是否正在运行,如果是,那么,如果不是,则启动它.

现在我想在每次脚本运行到Debug.log时附加时间戳,如果它发现./program正在运行.所以在线下then,我补充说:

echo "Time: $(date)" >> Debug.log
Run Code Online (Sandbox Code Playgroud)

此命令不向Debug.log输出任何内容.但它直接从命令行工作.为什么会这样,我可以解决这个问题吗?

bash time

18
推荐指数
1
解决办法
5万
查看次数

在DataGridView中隐藏滚动条

我为ScrollBars属性选择了"None",但是这使我无法使用鼠标滚轮滚动.我要么删除滚动条或隐藏它们,同时仍然允许鼠标滚轮滚动.这可能吗?

我解决了它(8个小时都无法回答......)

订阅MouseWheel事件并在函数中...

if(e.Delta > 0 && DGV.FirstDisplayedScrollingIndex > 0)
{
    DGV.FirstDisplayedScrollingIndex--;
}
else if(e.Delta < 0)
{
    DGV.FirstDisplayedScrollingIndex++;
}
Run Code Online (Sandbox Code Playgroud)

c# datagridview scrollbar winforms

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

在c ++中引用而不通过引用传递

我有class A一个public std::list<int> object list_. Class B,带有指向类的指针A a.

在课堂上的方法B......

std::list my_list = a->list_;
my_list.push_back(1);
my_list.push_back(2);
my_list.push_back(3);
Run Code Online (Sandbox Code Playgroud)

我知道my_list实际上是list_的副本,这就是为什么更改不会反映到原始列表中的原因.对于这个特定领域,我试图避免通过引用传递.无需执行以下操作......

a->list_.push_back(1);
a->list_.push_back(2);
a->list_.push_back(3);
Run Code Online (Sandbox Code Playgroud)

我是否有可能直接引用A中的list_对象,而不必a每次都经过对象?

谢谢

c++ copy reference

4
推荐指数
2
解决办法
163
查看次数

在c ++中附加缓冲区

我试图有效地将地图的内容转换为字符串以通过套接字发送.到目前为止我有这个...

char buffer[1024];
for (iter = my_mapy.begin(); iter != my_map.end();iter++)
{
    sprintf(buffer, "%s|%ld|%d", buffer, iter->first, iter->second);
}
Run Code Online (Sandbox Code Playgroud)

虽然这是有效的,但我想知道它是否效率低下.Google搜索将int/long/double转换为string的最有效方法导致了sprintf,这就是我使用它的原因.但我担心缓冲区的内容会被反复复制,而我只是想追加到最后.这是正确的,如果是这样,有没有更好的方法来做到这一点?性能和速度是第一优先.

谢谢!

c++ string map type-conversion

3
推荐指数
2
解决办法
4130
查看次数

Boost :: mutex性能vs pthread_mutex_t

我之前正在使用pthread_mutex_ts.代码有时会卡住.我有几行代码分散在我包装的函数中......

pthread_mutex_lock(&map_mutex);// Line 1
  //critical code involving reading/writing wrapped around a mutex //Line 2
pthread_mutex_unlock(&map_mutex); //Line 3
Run Code Online (Sandbox Code Playgroud)

不确定代码被卡住的方式/位置,我切换pthread_mutex_t到了boost:mutex

1)如果我只是用第1行替换第1行和第3 boost::lock_guard<boost::mutex> lock(map_mutex);行,并且一切都运行良好,那么pthread实现可能会出现什么问题?

2)我是否通过切换到提升而放弃了性能.这里的关键部分非常时间敏感,所以我希望互斥体非常轻巧.(C++,redhat)

c++ mutex boost-mutex

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

根据输入值排序std :: map的顺序

我知道一旦声明你就无法改变地图的顺序.相反,我在一个结构中尝试这个:

struct MyStruct
{
    std::map<int, double>* my_map;

    MyStruct(bool dir)
    {
        if(dir)
        {
            my_map = new std::map<int, double, std::less<int> >;
        }
        else
        {
            my_map = new std::map<int, double, std::greater<int> >;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,并抱怨我正在改变else条件下的类型.有没有解决的办法?我能想到的唯一方法是编写自己的比较器并创建一个封装的对象bool dir,这似乎是多余的.

c++ map comparator

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

在C#中,有没有办法将DataGridView单元格的内容拖到另一个单元格?

我有DataGridView dgv.在dgv的一个单元格中,我有一个带灰色阴影的单元格(其余单元格为空白和白色).我希望能够将该阴影单元格拖动到该列中的另一个单元格,并从前一个单元格的位置,值,行#,列#等以及新单元格的位置,值,行/列中获取信息.这可能吗?这非常类似于棋盘,其中"棋子"通过拖动从一个单元格移动到另一个单元格.

c# drag-and-drop datagridview

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

如何使用非默认参数的值作为Python中默认参数的默认值?

这是我的班级栏:

class Bar:
    def __init__(self, start, end, open, volume, high=open, low=open, last=open):
        self.start = start
        self.end = end
        self.open = open
        self.high = high
        self.low = low
        self.last = last
        self.volume = int(volume)

    def __str__(self):
        return self.start.strftime("%m/%d/%Y\t%H:%M:%S") + "\t" + self.end.strftime("%H:%M:%S") + "\t" +str(self.open) + "\t" + str(self.high) + "\t" + str(self.low) + "\t" + str(self.last) + "\t" + str(self.volume)
Run Code Online (Sandbox Code Playgroud)

1)我试图初始化高,低和最后的任何打开.这是正确的方法吗?

2)当我打印(str(bar))我得到有趣的输出,如...

03/13/2012 12:30:00 13:30:00 138.91 <built-in function open> 138.7 <built-in function open> 13177656

python default-value default-arguments

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

迭代python中的压缩列表

我有以下内容:

class Trade:
    def __init__(self):
        entry = [0, 1, 2, 3]
        exit = [1, 2, 3, 4]
        met = [0, 0, 0, 0]
        self.stats = zip(entry, exit, met)



t = Trade()

for entry, exit, met in t.stats:
        met = 1

for entry, exit, met in t.stats:
    print(entry, exit, met)
Run Code Online (Sandbox Code Playgroud)

我期待所有的值met都是1.但事实并非如此.这是什么原因,我怎样才能使修改met反映在实例中Trade class t.for语句是否生成t.stats的副本而不是迭代其原始副本?

python zip loops

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

operator []根据变量类型返回引用或复制

参考这个,如果我有std::map<double, Object> my_map,是以下等价物?

Object& obj = my_map[1];
Object obj = my_map[1];
Run Code Online (Sandbox Code Playgroud)

我知道operator[]通过引用返回,第一种方式,正确的方法,而不是创建副本,或者它们是相同的.如果它们是相同的,我不确定它们为什么会这样.

同样,如果我也有......

std::map<double, Object>::iterator it;
Run Code Online (Sandbox Code Playgroud)

以下是类似的吗?

Object& obj = it->second;
Object obj = it->second;
Run Code Online (Sandbox Code Playgroud)

c++ reference map

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