程序设计

专业和发烧友程序员的问答


4
Argparse:“可选参数”下列出了必需参数吗?
我使用下面的简单代码来解析一些参数。请注意,其中之一是必需的。不幸的是,当用户在不提供参数的情况下运行脚本时,显示的用法/帮助文本并不表示存在一个非可选的参数,我感到非常困惑。如何获取python以指示参数不是可选的? 这是代码: import argparse if __name__ == '__main__': parser = argparse.ArgumentParser( description='Foo') parser.add_argument('-i','--input', help='Input file name', required=True) parser.add_argument('-o','--output', help='Output file name', default="stdout") args = parser.parse_args() print ("Input file: %s" % args.input ) print ("Output file: %s" % args.output ) 在不提供必需参数的情况下运行上述代码时,得到以下输出: usage: foo.py [-h] -i INPUT [-o OUTPUT] Foo optional arguments: …
229 python  argparse 


11
将数字舍入到最接近的整数
我一直试图舍入长浮点数,例如: 32.268907563; 32.268907563; 31.2396694215; 33.6206896552; ... 到目前为止没有成功。我想math.ceil(x),math.floor(x)(尽管这或圆形上下,这是不是我要找的)和round(x)它没有任何工作(还是浮点数)。 我能做什么? 编辑:代码: for i in widthRange: for j in heightRange: r, g, b = rgb_im.getpixel((i, j)) h, s, v = colorsys.rgb_to_hsv(r/255.0, g/255.0, b/255.0) h = h * 360 int(round(h)) print(h)
229 python 

8
创建堆栈大小为默认值的50倍的线程有什么危险?
我目前正在开发一个性能非常关键的程序,因此决定探索一条可能有助于减少资源消耗的方法,这是增加工作线程的堆栈大小,以便我可以将要访问的大部分数据float[]移至堆栈(使用stackalloc)。 我已经读到,线程的默认堆栈大小是1 MB,因此,要移动我float[]的所有内存,我必须将堆栈扩展大约50倍(到50 MB〜)。 我了解这通常被认为是“不安全的”并且不建议这样做,但是在将当前代码与此方法进行基准比较之后,我发现处理速度提高了530%!因此,我不能在没有进一步调查的情况下简单地通过该选项,这使我提出了问题。将堆栈增加到如此大的尺寸有什么危险(可能会出问题),我应采取什么预防措施以最小化此类危险? 我的测试代码 public static unsafe void TestMethod1() { float* samples = stackalloc float[12500000]; for (var ii = 0; ii < 12500000; ii++) { samples[ii] = 32768; } } public static void TestMethod2() { var samples = new float[12500000]; for (var i = 0; i < 12500000; …
228 c#  .net  memory  stack-memory 

7
.NET-获取协议,主机和端口
.NET中是否有一种简单的方法可以快速获取当前协议,主机和端口?例如,如果我在以下URL上: http://www.mywebsite.com:80/pages/page1.aspx 我需要退货: http://www.mywebsite.com:80 我知道可以Request.Url.AbsoluteUri用来获取完整的URL,也可以Request.Url.Authority用来获取主机和端口,但是我不确定在不解析URL字符串的情况下获取协议的最佳方法。 有什么建议?
228 .net  asp.net  url  uri  authority 

15
Swift中的NSLocalizedString等效项是什么?
有Swift的等效项NSLocalizedString(...)吗?在中Objective-C,我们通常使用: NSString *string = NSLocalizedString(@"key", @"comment"); 如何在Swift中实现相同目标?我发现了一个功能: func NSLocalizedString( key: String, tableName: String? = default, bundle: NSBundle = default, value: String = default, #comment: String) -> String 但是,它很长,根本不方便。

30
如何防止Eclipse在启动时挂起?
我正在使用Eclipse 3.3(“ Europa”)。Eclipse会不定期地(可能永远)花费很长时间来启动。我在Eclipse日志中唯一看到的是: !ENTRY org.eclipse.core.resources 2 10035 2008-10-16 09:47:34.801 !MESSAGE工作区在上一个会话中退出,但未保存更改;刷新工作区以恢复更改。 谷歌搜索发现有人建议我删除该文件夹: workspace\.metadata\.plugins\org.eclipse.core.resources\.root\.indexes 这似乎没有帮助。 缺少一个新的工作空间(我不愿意做的事情,因为我要花费几个小时才能再次正确设置所有项目),是否有办法使Eclipse正确启动?



9
将.css文件导入.less文件
可以将.css文件导入.less文件...吗? 我对较少的内容非常熟悉,并将其用于我的所有开发。我经常使用如下结构: @import "normalize"; //styles here @import "mixins"; @import "media-queries"; @import "print"; 所有导入文件都是其他.less文件,并且可以正常运行。 我当前的问题是:我想将.css文件导入.less,以引用.css文件中使用的样式,如下所示: @import "../style.css"; .small { font-size:60%; .type; } // other styles here .css文件包含一个名为的类,.type但是当我尝试编译.less文件时,出现错误NameError: .type is undefined .less文件不会仅导入其他.less文件...吗?还是我引用错了...?!
228 css  import  less 

30
多少个参数太多?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 例程可以有参数,这不是新闻。您可以根据需要定义任意数量的参数,但是参数太多会使您的例程难以理解和维护。 当然,您可以使用结构化变量作为解决方法:将所有这些变量放在单个结构中,然后将其传递给例程。实际上,使用结构简化参数列表是Steve McConnell在Code Complete中描述的技术之一。但正如他所说: 谨慎的程序员避免捆绑数据超出逻辑上的必要性。 因此,如果您的例程中有太多参数,或者您使用结构来掩盖大参数列表,则可能是您做错了什么。也就是说,您不会使耦合松动。 我的问题是,何时可以考虑参数列表太大?我认为超过5个参数太多了。你怎么看?

6
模拟器错误FBSSystemServiceDomain代码4
我正在尝试在模拟器中运行应用程序,但收到以下错误消息: Unable to run app in Simulator An error was encountered while running (Domain = FBSSystemServiceDomain, Code = 4) 谷歌搜索之前,我还没有看到任何对此的参考。 该应用程序使用XCode 6 Beta,在Swift中链接到Obj-C静态库。它在设备上运行良好。 有任何想法吗?


10
通过反射找到私人领域?
鉴于这个班 class Foo { // Want to find _bar with reflection [SomeAttribute] private string _bar; public string BigBar { get { return this._bar; } } } 我想找到要用属性标记的私人物品_bar。那可能吗? 我已经在寻找属性的属性中做到了这一点,但是从来没有一个私有成员字段。 我需要设置哪些绑定标志才能获取私有字段?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.