小编Dav*_*ing的帖子

python项目需要一个MANIFEST.in,应该包含什么?

"Python Distribute"指南(位于python-distribute.org,但注册已失效)告诉我包含doc/txt文件和.py文件被排除在MANIFEST.in文件中

sourcedist文档告诉我只有sdist用途MANIFEST.in,并只包括文件指定和包含.py文件.它还告诉我使用:python setup.py sdist --manifest-only生成一个MANIFEST,但是python告诉我这个不存在

我很欣赏这些来自不同版本的python并且分发系统完全混乱,但假设我使用的是python 3和setuptools(包括分发但现在称为setuptools的新的,而不是仅用于分发工具的旧的setuptools)被重新分配并分发重命名为setuptools .....)

我正在遵循'标准'文件夹结构和setup.py文件,

  1. 我需要一个MANIFEST.in吗?
  2. 应该包括什么?
  3. 什么时候将所有这些不同的包装系统和方法组合成一个简单的过程?

python setuptools

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

post increment operator java

我无法通过joshua bloch的"java puzzlers"来制作以下代码的正面或反面.

public class Test22{
 public static void main(String args[]){
  int j=0;
  for(int i=0;i<100;i++){ 
    j=j++;
  }
  System.out.println(j); //prints 0

  int a=0,b=0;
  a=b++;
  System.out.println(a);
  System.out.println(b); //prints 1


 }
}
Run Code Online (Sandbox Code Playgroud)

我不能得到j打印0的部分.据作者说,

j=j++
Run Code Online (Sandbox Code Playgroud)

类似于

temp=j;
j=j+1;
j=temp;
Run Code Online (Sandbox Code Playgroud)

a=b++
Run Code Online (Sandbox Code Playgroud)

制作b 1.所以它应该像这样评估,

a=b
b=b+1
Run Code Online (Sandbox Code Playgroud)

遵循相同的逻辑,不应该

j=j++
Run Code Online (Sandbox Code Playgroud)

被评估为,

j=j
j=j+1
Run Code Online (Sandbox Code Playgroud)

这里的温度在哪里?任何解释都将非常感激."我对此深有所怀疑.;)>>提前致谢.

java post-increment

13
推荐指数
3
解决办法
7322
查看次数

在函数定义之后将返回对象分配给函数名的目的

我发现swig为C++函数生成的Python包装器有以下几行:

def my_func(arg):
    return _cpp_mod.my_cpp_func(arg)
my_func = _cpp_mod.my_cpp_func
Run Code Online (Sandbox Code Playgroud)

.i文件中的源代码如下:

%module cpp_mod
... ...
%inline %{
MyObj& my_cpp_func(arg) {
    return *new MyObj(arg);
}
%}
Run Code Online (Sandbox Code Playgroud)

生成的代码的所有功能似乎都可以.
我想知道的是
生成的python代码的第三行的目的.提前致谢.

python swig

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

无法打开文件,路径 = 'file:///path'(操作系统错误:没有那个文件或目录,错误号 = 2)

嗨,我正在尝试使用图像库减小从图库中选取的图像大小,同时尝试遇到这样的错误

E/flutter (13796): [ERROR:lib/tonic/logging/dart_error.cc(16)]    Unhandled exception:
E/flutter (13796): FileSystemException: Cannot open file, path = 'file:///storage/emulated/0/WhatsApp/Media/WhatsApp%20Images/IMG-20171016-WA0020.jpg' (OS Error: No such file or directory, errno = 2)
E/flutter (13796): #0      _File.throwIfError (file_impl.dart:618)
E/flutter (13796): #1      _File.openSync (file_impl.dart:473)
E/flutter (13796): #2      _File.readAsBytesSync (file_impl.dart:533)
E/flutter (13796): #3      _AddNewUserState.qqq (/data/data/com.prayuta.chitfunds/cache/chitfundsUNFPRG/chitfunds/lib/users.dart:420:97)
E/flutter (13796): <asynchronous suspension>
E/flutter (13796): #4      _AddNewUserState.build.<anonymous closure> (/data/data/com.prayuta.chitfunds/cache/chitfundsUNFPRG/chitfunds/lib/users.dart:686:19)
E/flutter (13796): #5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
E/flutter (13796): #6      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:149:9)
E/flutter (13796): #7      TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:119:7)
E/flutter (13796): #8      GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter (13796): #9          BindingBase&SchedulerBinding&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20) …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

使用空初始化列表直接初始化

struct X
{
    X() { std::cout << "default ctor" << std::endl; }

};

int main()
{
    X({});
}
Run Code Online (Sandbox Code Playgroud)

打印出来

default ctor
Run Code Online (Sandbox Code Playgroud)

这是有道理的,因为空括号值初始化对象(我认为).然而,

struct X
{
    X() { std::cout << "default ctor" << std::endl; }
    X(std::initializer_list<int>) { std::cout << "initializer list" << std::endl; }
};

int main()
{
    X({});
}
Run Code Online (Sandbox Code Playgroud)

为此,我得到了

initializer list
Run Code Online (Sandbox Code Playgroud)

我没有发现这种行为如此奇怪,但我并不完全相信.对此有什么规定?

这种行为是否写在标准的某些部分?

c++ initializer-list language-lawyer c++11

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

Python将N维体积划分为统一的子体积

我有一个对象占据了基础的N维正方形网格(由一个numpy数组表示),因此仅占25%的网格点。此网格中的每个1x1x1x ... N多维数据集(即,超多维数据集)都包含相同数量的该对象(仅位于此超多维数据集的某些顶点处)。我有一个所有占用的网格点的坐标数组。该任务是循环遍历此数组并提取每个1x1x1 ...超立方体的占用坐标,并将它们存储在新数组中以进行进一步处理。

这种情况最好通过例子来解释。考虑3D情况,其中选择了基础网格,以便1<=i,j,k<=4给出2d numpy数组: A= [[1 1 1] [1 2 1] [1 3 1] [1 4 1] [2 1 1] [2 2 1] [2 3 1] [2 4 1] [3 1 1] [3 2 1] [3 3 1] [3 4 1] [4 1 1] [4 2 1] [4 3 1] [4 4 1] [1 1 2] [1 2 2] [1 3 2] [1 4 2] [2 1 2] [2 2 2] [2 3 2] [2 …

python arrays numpy

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

C++ 中的括号或大括号如何改变变量的初始值?

只是一个有启发性的面试问题:“这个 C++14 程序打印什么?”

#include <iostream>

struct A { int i; };
struct B { 
    A a{1}; 
    operator int() { return a.i; }
};

int main() { 
    B x({});
    B y{{}};
    std::cout << x << y;
}
Run Code Online (Sandbox Code Playgroud)

它实际上打印了10,这意味着定义中的大括号y改变了它的初始值。但是如何?

c++ initialization c++14

6
推荐指数
0
解决办法
70
查看次数

为什么来自非依赖基类的非限定名称比模板参数更受青睐

C++ 标准规定,来自非依赖基类的非限定名称优于模板参数。这背后的原因是什么?

以下片段来自 C++ 模板:

#include <iostream>

template <typename X>
class Base {
    public:
        int basefield;
        using T = int;
};

class D1 : public Base<Base<void>> {
    public:
        void f() { basefield = 3; // works as normal 
        }
};

template <typename T>
class D2 : public Base<double> {
    public:
        void f() { basefield = 7; }
        T strange;  // what type am I ???
};

int main() {
    D2<std::string> d;
    d.strange = 100;
}
Run Code Online (Sandbox Code Playgroud)

c++ templates language-lawyer

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

详细命名空间中的using指令是否有问题?

考虑这个库头:

#include<vector>
#include<algorithm>
#include<iostream>

namespace Lib {
  namespace detail {
    using namespace std;

    template<class T>
    void sort_impl(istream &in,ostream &out) {
      vector<T> v;
      {
        int n;
        in >> n;
        v.resize(n);
      }
      for(auto &i : v) cin >> i;

      sort(v.begin(),v.end());
      for(auto i : v) out << i << endl;
    }
  }

  inline void sort_std() {
    detail::sort_impl<int>(std::cin,std::cout);
  }
}
Run Code Online (Sandbox Code Playgroud)

detail命名空间是否成功地将库的客户端(以及库的其余部分实现)与此示例中的using-directive隔离开来?我对于为什么"使用命名空间std"被认为是不良做法的讨论不感兴趣即使某些论据甚至适用于"包含良好"的使用指令.

请注意,有两个关于相同情况但存在使用声明的问题:

这可以与它们中的任何一个组合,但编辑将是严重的.

c++ namespaces using-directives

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

共享库以什么顺序初始化和完成?

进程中的动态对象有多种来源:

  1. 可执行文件本身
  2. 它需要的任何库(DT_NEEDED对于 ELF)
  3. 显式加载的库(dlopen或类似的)
  4. 此类显式加载所需的任何库

在任何一种情况下,它们都可以显式( dlclose) 或在进程运行它们的终结(函数、C++ 中的静态持续时间析构函数和函数)时隐式卸载。exitatexit__attribute__((destructor))

在这些不同的情况下,是什么决定了动态对象初始化和结束的顺序?显然,dlclose库的最后一个会立即卸载它,但是它的依赖关系树(其中一些也可能是其他加载的库的依赖关系)呢?如果库被dlopen编辑但随后被卸载exit怎么办?

我倾向于期望通常的初始化顺序相反,但也许两者之间存在差异DT_NEEDEDdlopen因为“插件”是由后者加载的,并且可能依赖于可执行文件的数据而不是相反。

destructor shared-libraries exit dlopen

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