小编mak*_*day的帖子

Makefile如何知道文件已更改然后重新编译?

出于好奇,Makefile如何知道文件已更改(然后重新编译)?它取决于make?是由编译器决定的吗?如果是这样,它是否依赖于语言?

programming-languages makefile

39
推荐指数
2
解决办法
6738
查看次数

asyncio run 或 run_until_complete

asyncio以一种非常基本的方式用于应用程序。检查互联网上的大多数教程(甚至官方文档),我看到他们使用get_event_loop()loop.run_until_complete()

import asyncio

async def say(what, when):
    await asyncio.sleep(when)
    print(what)

loop = asyncio.get_event_loop()
loop.run_until_complete(say('hello world', 1))
loop.close()
Run Code Online (Sandbox Code Playgroud)

但是在Python 3.7 docs 中,我们可以阅读:

应用程序开发人员通常应该使用高级 asyncio 函数,例如asyncio.run(),并且很少需要引用循环对象或调用其方法。本节主要面向需要更好地控制事件循环行为的低级代码、库和框架的作者。

我发现它更简洁、更易于使用,但它仅适用于 Python 3.7+。所以在这里我必须做出选择,是使用 Python 3.7+run()还是使其与 Python 3.6 兼容并使用事件循环。你会如何处理这个?有没有一种简单的方法可以使它与 Python 3.6 向后兼容?在 Python 3.7 成为通用版本之前,我是否应该首先检查 Python 版本并基于此使用一种或另一种方式?

python python-asyncio

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

从Sonarqube导出编码规则列表

我试图找到一种方法来获取所有Sonarqube Java(或其他)规则(带有键,描述等)的列表,并将其导出为Excel,csv或xml.我可以像这样 "动态地"列出它们,但我希望将它们全部放在一个文件中.有谁知道如何做到这一点?

java rules list sonarqube

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

Mongo:尝试在主机上运行命令“ whatsmyuri”时出现网络错误

我一直试图从另一台机器访问我的mongo实例,但是出现此错误。我找不到很多对此whatsmyuri错误的引用。这是我从外部计算机获得的:

$ mongo <IP_ADDRESS>:27017/youtube_advertising -u user -p password

MongoDB shell version: 3.2.0
connecting to: <IP_ADDRESS>:27017/youtube_advertising
2016-02-19T17:10:02.923+0100 E QUERY    [thread1] Error: network error while attempting to run command 'whatsmyuri' on host '<IP_ADDRESS>:27017'  :
connect@src/mongo/shell/mongo.js:226:14
@(connect):1:6

exception: connect failed
Run Code Online (Sandbox Code Playgroud)

我已经更改了/etc/mongod.conf文件,通过端口27017(带有iptables)打开了连接,然后重新启动了mongo。我可以通过ssh该机器连接。

搜索这个whatsmyuri,我在mongo上运行了这个命令:

> db.runCommand( { whatsmyuri: 1 } )
{ "you" : "127.0.0.1:36990", "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)

我不知道该36990端口是对还是错。万一我也从那里打开了连接,但还是没有。

有任何想法吗?

更新

检查/var/log/mongodb/mongod.log,这是我尝试从远程连接时得到的信息:

2016-02-19T10:41:07.292-0600 I NETWORK  [initandlisten] connection accepted …
Run Code Online (Sandbox Code Playgroud)

port remote-access mongodb

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

C++重载运算符'>>'

我一直在寻找很多不同的例子和解释,但没有一个真正回答我正在寻找的东西.我有三个类,每个类都有一个名为connect的方法:

class foo { ... }
void foo::connect(bar br) { ... }

class bar { ... }
bar& bar::connect(baz bz) { ... }

class baz { ... }
baz& baz::connect() { ... }
Run Code Online (Sandbox Code Playgroud)

在我的主要课程中,我将它们连接起来:

foo.connect(bar);
bar.connect(baz);
baz.connect();
Run Code Online (Sandbox Code Playgroud)

要么:

foo.connect( bar.connect( baz.connect() ) );
Run Code Online (Sandbox Code Playgroud)

(我知道这是简要说明,如果需要,我可以更好地解释)

所以,我试图重载运算符'>>'在main函数中有这样的东西:

foo >> bar >> baz;
Run Code Online (Sandbox Code Playgroud)

对于它运行的第一个运算符,所以如果我只是执行以下操作,它可以正常工作:

foo >> bar.connect(baz.connect);
Run Code Online (Sandbox Code Playgroud)

但是,当我设置另一个'>>'运算符时,g ++会返回以下错误:

error: no match for ‘operator>>’ in ‘operator>>((* & foo), (* & bar)) >> baz.baz::connect()’
Run Code Online (Sandbox Code Playgroud)

我想我没有正确地重载运算符'>>':

bar& operator>> (bar &br, baz &bz)
{ …
Run Code Online (Sandbox Code Playgroud)

c++ overloading definition operators

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

Python如何处理列表推导中的多个条件?

我试图从我的函数创建一个列表理解,我遇到了一个意外的行为.为了更好地理解,我的函数得到一个整数并检查它的哪个数字完全除以整数:

# Full function
divs = list()
for i in str(number):
    digit = int(i)
    if digit > 0 and number % digit == 0:
        divs.append(digit)
return len(divs)

# List comprehension
return len([x for x in str(number) if x > 0 and number % int(x) == 0])
Run Code Online (Sandbox Code Playgroud)

问题是,如果我给出一个1012输入,则返回完整的函数3,这是预期的结果.列表理解返回一个ZeroDivisionError: integer division or modulo by zero.我明白这是因为这个条件:

if x > 0 and number % int(x) == 0
Run Code Online (Sandbox Code Playgroud)

在完整功能中,多个条件从左到右处理,所以很好.在列表理解中,我真的不知道,但我猜测它没有以同样的方式处理.

直到我尝试使用更简单的功能:

# Full function
positives = list()
for i in …
Run Code Online (Sandbox Code Playgroud)

python list

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