程序设计

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

6
绑定为空/未定义(带过滤器)时的Angularjs模板默认值
我有一个模板绑定,使用Angular的日期过滤器显示名为“ date”的模型属性,该属性是一个日期。 <span class="gallery-date">{{gallery.date | date:'mediumDate'}}</span> 到目前为止,一切都很好。但是,目前,如果日期字段中没有值,则绑定不显示任何内容。但是,如果没有日期,我希望它显示字符串“ Various”。 我可以使用二进制运算符获取基本逻辑: <span class="gallery-date">{{gallery.date || 'Various'}}</span> 但是我无法使其与日期过滤器一起使用: <span class="gallery-date">{{gallery.date | date:'mediumDate' || "Various"}}</span> 如何在日期过滤器旁边使用二元运算符?

24
如何在Python中制作一个不变的对象?
尽管我从不需要它,但让我感到惊讶的是,在Python中创建不可变对象可能有些棘手。您不能仅仅重写__setattr__,因为这样您甚至都无法在中设置属性__init__。将元组子类化是一种有效的技巧: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) @property def a(self): return self[0] @property def b(self): return self[1] def __str__(self): return "<Immutable {0}, {1}>".format(self.a, self.b) def __setattr__(self, *ignored): raise NotImplementedError def __delattr__(self, *ignored): raise NotImplementedError 但是然后您可以通过和来访问a和b变量,这很烦人。self[0]self[1] 在纯Python中这可能吗?如果没有,我将如何使用C扩展名呢? (仅在Python 3中有效的答案是可以接受的)。 更新: 因此,将元组子类化是在纯Python 中完成此操作的方法[0],除了通过[1]等访问数据的附加可能性外,该方法行之有效。要解决此问题,所有遗漏的是如何在C中“正确”进行操作,这我怀疑这很简单,只是不执行任何geititemor setattribute等等。但是我没有为此做,而是为此提供了赏金,因为我很懒。:)

12
从线性回归中提取p值和r平方
您如何从简单的线性回归模型中提取p值(对于单个解释变量的系数的重要性为非零)和R平方值?例如... x = cumsum(c(0, runif(100, -1, +1))) y = cumsum(c(0, runif(100, -1, +1))) fit = lm(y ~ x) summary(fit) 我知道可以summary(fit) 显示 p值和R平方值,但是我希望能够将它们粘贴到其他变量中。
179 r 

1
向Angular HttpClient添加HTTP标头不发送标头,为什么?
这是我的代码: import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http'; logIn(username: string, password: string) { const url = 'http://server.com/index.php'; const body = JSON.stringify({username: username, password: password}); const headers = new HttpHeaders(); headers.set('Content-Type', 'application/json; charset=utf-8'); this.http.post(url, body, {headers: headers}).subscribe( (data) => { console.log(data); }, (err: HttpErrorResponse) => { if (err.error instanceof Error) …

26
如何在Linux上将所有文件夹和文件重命名为小写?
我必须递归重命名完整的文件夹树,以便任何地方都没有大写字母(这是C ++源代码,但这没关系)。 忽略CVS和Subversion版本控制文件/文件夹的加分点。首选方法是shell脚本,因为shell应该在任何Linux机器上都可用。 关于文件重命名的细节,有一些有效的论据。 我认为小写相同的文件应被覆盖;这是用户的问题。在忽略大小写的文件系统上签出时,它也会用后者覆盖第一个文件系统。 我会考虑AZ字符并将其转换为az,其他所有内容都只是在引起问题(至少在源代码中)。 在Linux系统上运行构建将需要该脚本,因此我认为应省略对CVS或Subversion版本控制文件的更改。毕竟,这只是从头开始。也许“出口”更合适。
179 linux  rename  lowercase 

1
如何停止Spark控制台上显示的INFO消息?
我想停止Spark Shell上出现的各种消息。 我试图编辑log4j.properties文件以停止这些消息。 这是内容 log4j.properties # Define the root logger with appender file log4j.rootCategory=WARN, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.target=System.err log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n # Settings to quiet third party logs that are too verbose log4j.logger.org.eclipse.jetty=WARN log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO 但是消息仍在控制台上显示。 这是一些示例消息 15/01/05 15:11:45 INFO SparkEnv: Registering BlockManagerMaster 15/01/05 15:11:45 INFO DiskBlockManager: …

10
将对象转换为int的更好方法
这可能是微不足道的,但我想不出更好的方法来做到这一点。我有一个COM对象,该对象返回一个变体,该变体成为C#中的一个对象。我可以将其转换为int的唯一方法是 int test = int.Parse(string.Format("{0}", myobject)) 有没有更清洁的方法可以做到这一点?谢谢
179 c#  interop 

19
致命错误:找不到类“ ZipArchive”
我有一个问题,我在Linux服务器上安装了“ Archive_Zip 0.1.1”,但是当我尝试运行脚本来创建zip文件时,却出现了致命错误 致命错误:ZipArchive在...中找不到类 我把代码放在哪里 $zip = new ZipArchive; var_dump($zip); $res = $zip->open($filename, ZipArchive::OVERWRITE); if ($res !== TRUE) { echo 'Error: Unable to create zip file'; exit; } if (is_file($src)) { $zip->addFile($src); } else { // echo "<br>" . dirname(__FILE__) . $src;//'/install1'; if (!is_dir($src)) { $zip->close(); @unlink($filename); echo 'Error: File …
179 php  zip  ziparchive 

8
在python,del或delattr中哪个更好?
这可能很愚蠢,但已经困扰了我一段时间。 Python提供了两种从对象中删除属性的内置方法,即del命令字和delattr内置函数。我更喜欢delattr,因为我认为它更加明确: del foo.bar delattr(foo, "bar") 但是我想知道它们之间是否存在内在差异。
179 python  del 

4
在Python中构建完整路径文件名
我需要将文件路径名传递给模块。如何从目录名称,基本文件名和文件格式字符串构建文件路径? 呼叫时目录可能存在也可能不存在。 例如: dir_name='/home/me/dev/my_reports' base_filename='daily_report' format = 'pdf' 我需要创建一个字符串 '/home/me/dev/my_reports/daily_report.pdf' 手动连接片段似乎不是一个好方法。我试过了os.path.join: join(dir_name,base_filename,format) 但它给 /home/me/dev/my_reports/daily_report/pdf
179 python  join  filenames 

1
JOIN查询与多个查询
JOIN查询比几个查询快吗?(您运行主查询,然后根据主查询的结果运行许多其他的SELECT) 我问是因为加入它们会使我的应用程序设计复杂化 如果速度更快,谁能大致估算出多少?如果是1.5倍,我不在乎,但是如果是10倍,我想我是。

1
无缓存和必须重新验证之间的区别
从RFC 2616 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1 无缓存 如果no-cache指令未指定字段名,则在未经原始服务器成功重新验证的情况下,缓存不得使用响应来满足后续请求。这样,即使已配置为将陈旧响应返回给客户端请求的缓存,原始服务器也可以防止缓存。 因此,它指示代理重新验证所有响应。 比较这个 必须重新验证 当在缓存接收到的响应中存在must-revalidate指令时,该缓存在过期之前将不能使用该条目来响应后续请求,而不必先通过原始服务器对其进行验证,则该缓存不得使用该条目 因此,它指示代理重新验证过时的响应。 特别是关于no-cache,这是用户代理实际,凭经验对待该指令的方式吗? 什么是点no-cache,如果有must-revalidate和max-age? 看到这个评论: http://palpapers.plynt.com/issues/2008Jul/cache-control-attributes/ 无缓存 尽管此指令听起来像是在指示浏览器不要缓存页面,但还是有细微的差别。根据RFC,“ no-cache”指令告诉浏览器在从缓存中提供页面之前,应先与服务器进行验证。重新验证是一种精巧的技术,可让应用程序节省带宽。如果浏览器已缓存的页面未更改,则服务器仅向浏览器发出信号,并从缓存中显示该页面。因此,浏览器(至少在理论上至少)将页面存储在其缓存中,但仅在与服务器重新验证后才显示页面。实际上,IE和Firefox已经开始对待no-cache指令,就像它指示浏览器甚至不缓存页面一样。大约一年前,我们开始观察这种行为。 有人在这方面有更多官方的吗? 更新资料 服务器仅当且仅当未能验证表示中的请求可能导致错误操作(例如静默未执行的金融交易)时,才应使用must-revalidate指令。 到现在为止,我从来没有想过这件事。RFC表示不要轻易使用必须重新验证。问题是,对于Web服务,您必须持否定态度,并为未知的客户端应用程序假设最糟糕的情况。任何陈旧的资源都有可能引起问题。 我刚刚考虑过的其他东西,如果没有Last-Modified或ETag,浏览器只能再次获取整个资源。但是,使用ETags,我观察到Chrome似乎至少在每次请求时都会重新验证。这使得这两个指令毫无意义,或者至少命名不当,因为它们不能正确地重新验证,除非请求还包含其他标头,这些标头随后仍然导致“始终重新验证”。 我只想使最后一点更清楚。仅设置must-revalidate但不包含ETag或Last-Modified,代理就只能再次获取内容,因为它没有什么可发送到服务器进行比较。 但是,我的经验测试表明,当响应中包含ETag或修改后的标头数据时,无论must-revalidate标头是否存在,代理始终会重新进行验证。 所以点must-revalidate是强制“旁路缓存”时,它会过时,如果当您设置了一生/年龄这只能发生,从而must-revalidate设置上,没有年龄或其他头的响应,它实际上就变成等同于no-cache自响应将立即被视为过期。 -因此,我将最终标记Gili的答案!

9
C ++中的内部typedef-好样式还是坏样式?
我最近发现自己经常做的事情是声明与该类中特定类相关的typedef,即 class Lorem { typedef boost::shared_ptr<Lorem> ptr; typedef std::vector<Lorem::ptr> vector; // // ... // }; 这些类型然后在代码的其他地方使用: Lorem::vector lorems; Lorem::ptr lorem( new Lorem() ); lorems.push_back( lorem ); 我喜欢它的原因: 它减少了由类模板引入的噪音,std::vector<Lorem>变为Lorem::vector等。 它用作意图的声明-在上面的示例中,Lorem类旨在通过boost::shared_ptr向量进行引用计数并存储在向量中。 它允许更改实现-即,如果需要更改Lorem以便boost::intrusive_ptr在以后的阶段(通过)对引用计数进行计数,那么这将对代码产生最小的影响。 我认为它看起来“更漂亮”并且可以说更易于阅读。 我不喜欢的原因: 依赖有时会出现问题-例如,如果您想将a嵌入Lorem::vector到另一个类中,但只需要(或想要)转发声明的Lorem(而不是在其头文件中引入依赖),则最终必须使用显式类型(例如boost::shared_ptr<Lorem>而不是Lorem::ptr),这有点不一致。 这可能不是很常见,因此很难理解吗? 我尝试以我的编码风格为目标,因此对它有其他意见是很好的,这样我可以对自己的想法进行一些剖析。

6
如何修改Git中的多个提交以更改作者
我在Git中进行了一系列提交,现在我意识到我忘记正确设置用户名和用户电子邮件属性(新机器)了。我尚未将这些提交推送到我的存储库中,因此如何在我这样做之前更正这些提交(仅master分支上的3个最新提交)? 我一直在查看git reset和git commit -C <id> --reset-author,但我认为自己的方向不正确。

11
将Dropzone.js与其他字段集成到现有的HTML表单中
我目前有一个HTML表单,用户可以填写他们希望发布的广告的详细信息。现在,我希望能够添加一个dropzone来上传待售商品的图片。 我发现Dropzone.js似乎可以满足我的大部分需求。但是,查看文档时,您似乎需要将整个表单的类指定为dropzone(而不是仅输入元素)。这意味着我的整个表单成为了dropzone。 是否可以仅在表单的一部分中使用dropzone,即仅通过将元素指定为class “ dropzone”而不是整个表单来使用? 我可以使用单独的表单,但是我希望用户能够通过一个按钮提交所有表单。 另外,还有另一个图书馆可以做到这一点吗? 非常感谢

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.