小编qui*_*tle的帖子

为什么我在每个级别都需要__init__.py?

鉴于我有以下目录结构.作为当前工作目录

.
\---foo
    \---bar
        \---__init__.py
        \---baz.py
Run Code Online (Sandbox Code Playgroud)

当我跑步时,python -c "import foo.bar.baz"我得到了

Traceback (most recent call last):
  File "<string>", line 1
ImportError: No module named foo.bar.baz
Run Code Online (Sandbox Code Playgroud)

如果我echo "" > foo/__init__.py,上面的命令有效.

我做错了什么或者我是否误解了这一点__init__.py?我认为这是停止现有的模块,他们不应该,其中例如一个名为string,但如果更换foostring在我的例子中,我似乎不得不创建一个不应该被使用的模块,只是让我可以引用文件更深层次的.

更新

我正在使用一个构建系统,它正在__init__.py为我生成并正在执行目录结构,虽然我可以搞乱层次结构,但我更愿意添加__init__.py自己.要稍微改变一下这个问题,为什么我需要在每个级别而不是在顶部的python包?只是一个规则,你只能从python路径或python路径的一系列包中导入模块?

python python-module python-import

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

Rust 借用检查器和提前归还

Rust-lang Playground 链接

struct Foo {
    val: i32
}

impl Foo {
    pub fn maybe_get(&mut self) -> Option<&mut i32> {
        Some(&mut self.val)
    }
    
    pub fn definitely_get(&mut self) -> &mut i32 {
        { // Add closure to ensure things have a chance to get dropped
            if let Some(val) = self.maybe_get() {
                // Explicit return to avoid potential scope sharing with an else block or a match arms.
                return val;
            }
        }

        // One would think any mutable references would not longer …
Run Code Online (Sandbox Code Playgroud)

rust borrow-checker early-return mutable-reference

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

为什么std :: unique_ptr没有const get方法?

我明白这std::unique_ptr是它的方式,可能不会改变以打破向后兼容性,但我想知道是否有人有充分的理由为什么规范的编写者没有get使用看起来像const变量的方法重载方法

const T* get() const;
Run Code Online (Sandbox Code Playgroud)

跟随的意图unique_ptr存在const.

我最好的猜测是它试图镜像指针,T* const而不是典型的类.作为一个后续问题,如果我想在我的类的const实例中以类似const的方式持有一个指针,我应该使用除了std::unique_ptr保存数据之外的其他东西吗?

更新

在我的情况下,我想保护自己免于滥用类本身的指针.我正在编写一个const移动构造函数MyClass(const MyClass&& other),并将数据从新实例复制到其他via std::copy.我花了很长时间来追踪这个bug,因为我认为副本必须是正确的,因为const保护.我试图找出我可以做些什么来保护自己,除了提供一个const getter并在进行复制时在类中使用它.

c++ const smart-pointers c++11

7
推荐指数
3
解决办法
2399
查看次数

将 JSON 对象存储到 C++ 映射

我需要你们的帮助。

目前我正在使用 cJSON 来解析格式化为 Json 标准的数据。

下面的数据是数据的示例。

{
    "time" : {              
        "timezone" : string,
        "ntpservers" : array<string>
    },
    "datetime" : {
        "value" : "2013-10-23 03:35:45.182042",
        "space-custom-class" : "datetime.datetime"
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不知道如何将数据分解为键值对并将它们存储在地图中。我可以看到“时间”是一个键,但值是一个字典,所以我如何将其存储为“时间”的值,这适用于“日期时间”键。我知道这涉及到一些迭代,但我被困住了。因为值可以是基本类型、数组或字典,所以值应该是像模板这样的通用对象吗?一些例子会非常有帮助。

预先感谢您的任何帮助。

c++ json dictionary

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

使用文档片段的锚元素的CSS选择器

考虑以下示例代码

<body>
    <nav>
        <a href="#s1">First Section</a>
        <a href="#s2">Section 2</a>
    </nav>
    <main>
        <section id="s1">
            <p>Example paragraph
            <p>Paragraph 2
        </section>
        <section id="s2">
            <p>Example paragraph
            <p>Paragraph 2
        </section>
    </main>
</body>
Run Code Online (Sandbox Code Playgroud)

我可以选择section

section {
    background: #fff;
}

section:target {
    background: #f00;
}
Run Code Online (Sandbox Code Playgroud)

但我想a使用HTML / CSS 来定位选择它的对象,我可以想象像

a[href=:target] {
    font-weight: bold;  
}
Run Code Online (Sandbox Code Playgroud)

要么

a:target(href) {
    font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的解决方案是

HTML:

<body>
    <div id="s1"><div id="s2">
        <nav>
            <a href="#s1">First Section</a>
            <a href="#s2">Section 2</a>
        </nav>
        <main>
            <section name="s1">
                <p>Example paragraph
                <p>Paragraph 2
            </section> …
Run Code Online (Sandbox Code Playgroud)

html css html5 css-selectors css3

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

如何使用Bazel的py_library导入参数

我正在尝试在Bazel构建的项目中使用Boto3,但似乎无法为该库获取正确的导入。由于Boto git存储库的缘故,所有源均位于命名文件夹botocoreboto3存储库的根目录中。导入全部为boto3.boto3,第一个对应于外部依赖项的名称,第二个为驻留的根文件夹。如何使用imports的属性py_binarypy_library规则,以进口从内boto3而不是另一种呢?

这是我的工作区外观:

//WORKSPACE

BOTOCORE_BUILD_FILE = """

py_library(
    name = "botocore",
    srcs = glob([ "botocore/**/*.py" ]),
    imports = [ "botocore" ],
    visibility = [ "//visibility:public" ],
)

"""

_BOTO3_BUILD_FILE = """

py_library(
    name = "boto3",
    srcs = glob([ "boto3/**/*.py" ]),
    imports = [ "boto3" ],
    deps = [ "@botocore//:botocore" ],
    visibility = [ "//visibility:public" ],
)

"""

new_git_repository(
    name = "botocore",
    commit = "cc3da098d06392c332a60427ff434aa51ba31699",
    remote = …
Run Code Online (Sandbox Code Playgroud)

python build boto3 bazel

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