小编Cha*_*esB的帖子

何时使用os.name,sys.platform或platform.system?

据我所知,Python有3种方法可以找出正在运行的操作系统:

  1. os.name
  2. sys.platform
  3. platform.system()

了解此信息通常在条件导入中使用,或者使用不同平台之间的功能(例如,time.clock()在Windows上与time.time()UNIX上).

我的问题是,为什么有3种不同的方法呢?何时应该使用一种方式而不是另一种方式?哪种方式是"最佳"(大多数面向未来或最不可能意外地排除您的程序实际可以运行的特定系统)?

看起来sys.platform是不是更具体的os.name,可以让你区分win32cygwin(而不是只nt),并linux2darwin(而不是只posix).但如果是这样的话,那么sys.platform和之间的区别platform.system()呢?

例如,哪个更好,这个:

import sys
if sys.platform == 'linux2':
    # Do Linux-specific stuff
Run Code Online (Sandbox Code Playgroud)

或这个?:

import platform
if platform.system() == 'Linux':
    # Do Linux-specific stuff
Run Code Online (Sandbox Code Playgroud)

现在我会坚持sys.platform,所以这个问题并不是特别紧迫,但我非常感谢对此有所澄清.

python operating-system python-import

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

如果它不是可选的,为什么C#会中断?

当我switch在VS2008 C#中创建一个声明时(如此)(人为):

switch (state) {
    case '1':
        state = '2';
    case '2':
        state = '1';
}
Run Code Online (Sandbox Code Playgroud)

它抱怨说我不被允许通过:

控制不能从一个案例标签('case'1'(0x31):')转到另一个案例标签

如果您不被允许通过,那么该break声明的目的是什么?为什么语言设计师不会将其排除在外并自动跳到switch语句的末尾而不是强迫我们输入不必要的结构?

c# break switch-statement

91
推荐指数
4
解决办法
3万
查看次数

java如何用负数进行模数计算?

我做模数错了吗?因为在Java -13 % 64中应该评估,-13但我得到51.

java math modulo negative-number

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

如何从git存储库的历史记录中恢复整个目录?

我想从我的git存储库的历史中恢复整个目录(递归).

只有一个分支(主).

我知道包含错误的提交.

我可以使用父提交的sha1哈希来恢复目录的状态,因为它是在包含错误之前的状态吗?

我想过这样的事情:

git checkout 348ce0aa02d3738e55ac9085080028b548e3d8d3 path/to/the/folder/
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

git

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

是否可以使用URL参数链接到PDF中的书签?

在网站上提供PDF文件的链接时,是否可以在URL中包含信息(请求参数),这将使PDF浏览器插件(如果使用)跳转到特定书签而不是仅在开头打开?

类似的东西:http://www.somehost.com/user-guide.pdf?bookmark = chapter3

如果不是书签,是否可以转到特定页面?

我假设如果有答案,它可能是Adobe的PDF阅读器插件或其他东西,可能有版本限制,但我最感兴趣的是该技术是否存在.

pdf url bookmarks hyperlink

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

有人可以发布格式良好的crossdomain.xml示例吗?

我一直在读Adobe已经在flash 9-10中使crossdomain.xml更加严格,我想知道有人可以给我贴一份他们知道有用的副本.在Adobe的网站上找到最近的样本有些麻烦.

flash crossdomain.xml

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

Python:使用'from X import Y'重新加载组件Y?

在Python中,一旦我在解释器会话中导入模块X import X,并且模块在外部更改,我可以重新加载模块reload(X).然后,在我的翻译会话中可以使用这些更改.

我想知道当我从模块X导入组件Y时是否也可以这样做from X import Y.

该语句reload Y不起作用,因为Y本身不是模块,而只是模块内部的一个组件(在本例中是一个类).

是否可以在不离开解释器会话(或导入整个模块)的情况下重新加载模块的各个组件?

编辑:

为了澄清,问题是从模块X导入类或函数Y并重新加载更改,而不是从包X中重新模块Y.

python python-import

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

Java getHours(),getMinutes()和getSeconds()

据我所知getHours(),getMinutes()getSeconds()在Java中都已过时,它们被替换为Calendar.HOUR_OF_DAY,Calendar.MINUTE,Calendar.SECOND.

事实上,这些将在特定时刻返回小时,分钟和秒.但是,我想从Date变量中检索小时和分钟.例如,

说从数据库中检索的时间是

time = Thu Jan 01 09:12:18 CET 1970;

int hours = time.getHours();
int minutes = time.getMinutes();
int seconds = time.getSeconds();
Run Code Online (Sandbox Code Playgroud)

通过检索小时,分钟和秒,我得到了

hours = 9
minutes = 12
seconds = 18
Run Code Online (Sandbox Code Playgroud)

那么,我如何使用Calendar来实现这个功能呢?虽然getHours()已被弃用但仍然有效.我仍然想知道是否有替代方案.

java date hour minute seconds

80
推荐指数
3
解决办法
16万
查看次数

Git:如何列出此分支上的提交但不是合并分支的提交

假设您的git commit历史如下所示:

A---B---C---D---E---F master
     \         /
      X---Y---Z topic
Run Code Online (Sandbox Code Playgroud)

是否可以让git列表只有master,AF上的提交?换句话说,如果提交是在合并分支上,我不希望它显示.

git branch git-log git-branch

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

以git登录前10

两个问题:

  1. 如何从头到尾显示git中的前10个提交.(没有分支)
  2. 如何指定提交索引并记录它.(显示第二或第三)

我知道git使用parent链接提交,很容易从头到尾记录提交.喜欢:git log HEAD~10

但我需要从头到尾查询,有可能吗?

git logging

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