小编LtW*_*orf的帖子

去const的命名约定

我正在尝试确定是否存在constGolang 名称的命名约定.

我个人倾向于遵循C风格并以大写形式编写它们,但我在这个页面上找不到任何内容http://golang.org/doc/effective_go.html这似乎列出了该语言的一些命名约定.

const naming-conventions go

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

跨平台创建目录的方式?

有没有办法使用标准的c或c ++库来创建一个目录,包括给定一个绝对路径字符串可能需要的子文件夹?

谢谢

c c++

12
推荐指数
3
解决办法
7979
查看次数

在c中全局定义变量的extern

我有以下源代码,我感兴趣.

#include <stdio.h>
extern int foo;
int foo = 32;

int main()
{
printf("%d", foo);
}
Run Code Online (Sandbox Code Playgroud)

这是一段非常正常的代码,当我编译它时

gcc -Wall -Wextra -pedantic foo.c
Run Code Online (Sandbox Code Playgroud)

我没有得到任何警告.

这似乎很奇怪,因为变量既被定义为外部变量又被定义为同一文件中的全局变量.我很确定链接器很容易在同一个文件中找到外部变量的引用,但它看起来不像编码错误吗?如果是这样,为什么编译器不会对此发出警告?

c gcc global-variables extern

10
推荐指数
3
解决办法
6529
查看次数

从命令行启动erlang应用程序

我有一个用rebar编译的erlang应用程序.

通常我会这样开始:

application:start(myapp).
Run Code Online (Sandbox Code Playgroud)

从erl shell里面.

谁能告诉我如何像正常的命令行程序一样启动它?

erlang rebar

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

无法在django python中提供像css,js这样的静态文件

我很新django,并经历了很多天的教程,我已经开始使用django构建一个小网站,并尝试css通过在settings.py文件中安排所有必要的设置来提供文件.但不幸的是我的代码无法提供css文件,我的意思是服务css文件的概念不起作用.我google了很多,并通过django主要文档教程并根据它们进行了更改,但仍然无法工作所以接近SO并粘贴我的下面的整个代码

项目文件夹的结构

 personnel_blog
      |____personnel_blog
      |____manage.py  |  
                      |____media
                      |____static
                      |       |____css
                      |             |____personnel_blog_hm.css 
                      |____template 
                      |        |____home_page.html
                      |____settings.py
                      |____urls.py
                      |____views.py
                      |____wsgi.py         
Run Code Online (Sandbox Code Playgroud)

我的一些settings.py文件设置如下

settings.py

import os
PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
MEDIA_ROOT = os.path.join(PROJECT_DIR,'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(PROJECT_DIR,'static')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
                    os.path.join(PROJECT_DIR,'static'),
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
) …
Run Code Online (Sandbox Code Playgroud)

python django settings

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

检查字段是否正在输入。可选

检查类中的字段是否正在打字的最佳方法是什么?可选?

示例代码:

from typing import Optional
import re
from dataclasses import dataclass, fields

@dataclass(frozen=True)
class TestClass:
    required_field_1: str
    required_field_2: int
    optional_field: Optional[str]

def get_all_optional_fields(fields) -> list:
    return [field.name for field in fields if __is_optional_field(field)]

def __is_optional_field(field) -> bool:
    regex = '^typing.Union\[.*, NoneType\]$'
    return re.match(regex, str(field.type)) is not None

print(get_all_optional_fields(fields(TestClass)))
Run Code Online (Sandbox Code Playgroud)

fields来自哪里dataclasses,我想列出所有Optional字段。我现在正在做的解决这个问题是使用基于字段名称的正则表达式,但我不喜欢这种方法。有更好的方法吗?

python typing python-3.7

8
推荐指数
4
解决办法
3995
查看次数

如何让 pytest 忽略名为 TestSomething 的类?

我正在开发一种测试框架,它恰好有名为“TestSomething当然”的类。我意识到我的测试失败了,因为 pytest 将这些类视为“我需要实例化和运行的东西!”,一旦导入。而这绝对行不通。

import pytest
from package import TestSomethingClass
Run Code Online (Sandbox Code Playgroud)

是否可以直接从 pytest 测试文件导入此类?或者我应该通过固定装置间接使用它们?

同样的问题也适用于异常,因为我需要做类似的事情

with pytest.raises(TestsSomethingError):
Run Code Online (Sandbox Code Playgroud)

python pytest

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

将QClipboard传递给QML

我正在尝试使剪贴板可用于某些QML代码.

传递剪贴板对象似乎有效,但后来我无法调用它的方法.

下面是一个QClipboard在C++中运行良好,传递给QML的例子,在调试输出中它仍然是一个QClipboard对象但却失去了它的功能.

main.cpp中

#include <QApplication>
#include <QClipboard>
#include <QQmlApplicationEngine>
#include <qqmlcontext.h>
#include <QtQml>


int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.rootContext()->setContextProperty("clipboard", QApplication::clipboard());
    qDebug() << QApplication::clipboard()->text(); // This correctly prints the copied text
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

main.qml

import QtQuick 2.5
import QtQuick.Controls 1.3
ApplicationWindow {
    visible: true
    MouseArea {
        acceptedButtons: Qt.MiddleButton
        anchors.fill: parent
        onClicked: {
            console.log(clipboard)
            console.log(clipboard.getText())
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

qml.qrc

<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

test.pro

TEMPLATE = app
VERSION = 1.0

QT …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qt5

7
推荐指数
2
解决办法
1380
查看次数

在github上分叉一个目录

我在github上有一个项目,这是一个大项目的分支。我为此创建了一个插件,但他们告诉我它们将不包括该插件,因此我必须将其单独运送,所以现在我想分叉已经分叉的项目,但不是全部,而是我做该插件的目录。可能吗?

编辑: 显然在github上我不能叉我自己的存储库,所以我认为答案是否定的。

git github git-fork

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

如何查明我正在使用哪个 CPython 版本?

我正在尝试从Unofficial Windows Binaries for Python Extension Packages安装 OpenCV 。

\n\n

我下载了以下文件:opencv_python\xe2\x80\x913.4.3\xe2\x80\x91cp37\xe2\x80\x91cp37m\xe2\x80\x91win_amd64.whl,\n当我这样做时pip install "opencv_python\xe2\x80\x913.4.3\xe2\x80\x91cp37\xe2\x80\x91cp37m\xe2\x80\x91win_amd64.whl",弹出了一条错误消息。

\n\n

错误opencv_python-3.4.3+contrib-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.

\n\n

根据我在谷歌搜索和 SO-ing 后了解到的情况,这是由于CPython构建之间不匹配(下载的 Wheel 文件和我系统上的 Python 环境之间)造成的问题。

\n\n

因此,我尝试寻找方法来确定我的系统上是哪个 CPython 版本,但失败了。

\n\n

到目前为止我尝试过的:

\n\n
import platform\nplatform.python.implementation()\n
Run Code Online (Sandbox Code Playgroud)\n\n

这给出了:

\n\n
\'CPython\' \n
Run Code Online (Sandbox Code Playgroud)\n\n

此外,我尝试了 \nplatform.architecture()\n 给出了:

\n\n
(\'64bit\', \'WindowsPE\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

后来我只是搜索了我的site-packages文件夹并找到了一些文件,例如__init__.cpython-36.pyc因此假设我正在使用 CPython 3.6

\n\n

是否有更多基于编程的方法来通过终端检查相同的内容?

\n\n

任何形式的帮助表示赞赏。TIA。

\n

python windows cpython pip

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