我正在研究django中的模型系统是如何工作的,我发现了一些我不理解的东西.
我知道你创建一个空__init__.py文件来指定当前目录是一个包.并且您可以设置一些变量,__init__.py以便导入*正常工作.
但是django添加了一堆来自... import ...语句并定义了一堆类__init__.py.为什么?这不是让事情看起来凌乱吗?是否有需要此代码的原因__init__.py?
我发现在我的跨平台应用程序中获得 Unicode 支持真的很痛苦。
我需要可以从 C 代码到数据库、Java 应用程序和 Perl 模块的字符串。其中每一个都使用不同的 Unicode 编码(UTF8、UTF16)或其他一些代码页。我最需要的是一种跨平台的转换方式。
人们使用什么样的工具、库或技术来使处理这些事情变得更容易?
看看这个小提琴。http://jsfiddle.net/mstwp/
html 是:
<div id="parent" style="width: 150px; display: inline-block; white-space: nowrap">
<div id="one" class="kids">
<span>Hi</span>
</div>
<div id="two" class="kids">
<span>Bob like to play on his violin</span>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
与CSS:
#parent {
background-color: #aaaaaa
}
#one {
background-color: #ff0000
}
#two {
background-color: #00ff00
}
.kids {
display: inline-block;
padding: 2px;
white-space: normal;
}
Run Code Online (Sandbox Code Playgroud)
如何让 div #two 提前换行,以便将两个子 div 保留在父 div 内?
我需要一个跨平台,没有外部库,复制文件的方式.在我的第一次传递中,我提出了(错误处理省略):
char buffer[LEN];
ifstream src(srcFile, ios::in | ios::binary);
ofstream dest(destFile, ios::out | ios::binary);
while (!src.eof()) {
src.read(buffer, LEN);
dest.write(buffer, src.gcount());
}
Run Code Online (Sandbox Code Playgroud)
这很好用,我确切知道它在做什么.
然后我在stackoverflow上发现了一个帖子(抱歉,现在找不到链接),说我可以用以下代码替换所有上面的代码:
dest << src.rdbuf();
Run Code Online (Sandbox Code Playgroud)
这是好的和紧凑的,但隐藏了很多关于它正在做的事情.事实证明它真的很慢,因为ofstream :: operator <<(streambuf)的实现一次移动1个字符(使用snetxc()/ sputc()).
我有办法让这种方法更快吗?我原来的方法有缺点吗?
更新:在Windows上使用operator <<(streambuf)效率低下..read()/.write()循环看起来总是比operator <<更好.
此外,在上面的代码中更改缓冲区的大小不会影响对硬盘驱动器的读写大小.为此,您需要使用stream.rdbuf() - > pubsetbuf()设置缓冲区.