"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
文件,
MANIFEST.in
吗?我无法通过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)
这里的温度在哪里?任何解释都将非常感激."我对此深有所怀疑.;)>>提前致谢.
我发现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代码的第三行的目的.提前致谢.
嗨,我正在尝试使用图像库减小从图库中选取的图像大小,同时尝试遇到这样的错误
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) 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)
我没有发现这种行为如此奇怪,但我并不完全相信.对此有什么规定?
这种行为是否写在标准的某些部分?
我有一个对象占据了基础的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 …
只是一个有启发性的面试问题:“这个 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++ 标准规定,来自非依赖基类的非限定名称优于模板参数。这背后的原因是什么?
以下片段来自 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) 考虑这个库头:
#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"被认为是不良做法的讨论不感兴趣?即使某些论据甚至适用于"包含良好"的使用指令.
请注意,有两个关于相同情况但存在使用声明的问题:
这可以与它们中的任何一个组合,但编辑将是严重的.
进程中的动态对象有多种来源:
DT_NEEDED
对于 ELF)dlopen
或类似的)在任何一种情况下,它们都可以显式( dlclose
) 或在进程运行它们的终结(函数、C++ 中的静态持续时间析构函数和函数)时隐式卸载。exit
atexit
__attribute__((destructor))
在这些不同的情况下,是什么决定了动态对象初始化和结束的顺序?显然,dlclose
库的最后一个会立即卸载它,但是它的依赖关系树(其中一些也可能是其他加载的库的依赖关系)呢?如果库被dlopen
编辑但随后被卸载exit
怎么办?
我倾向于期望通常的初始化顺序相反,但也许两者之间存在差异DT_NEEDED
,dlopen
因为“插件”是由后者加载的,并且可能依赖于可执行文件的数据而不是相反。