小编jos*_*osh的帖子

在Python中使用类型提示添加默认参数值

如果我有这样的功能:

def foo(name, opts={}):
  pass
Run Code Online (Sandbox Code Playgroud)

我想在参数中添加类型提示,我该怎么做?我假设的方式给了我一个语法错误:

def foo(name: str, opts={}: dict) -> str:
  pass
Run Code Online (Sandbox Code Playgroud)

以下不会抛出语法错误,但它似乎不是处理这种情况的直观方式:

def foo(name: str, opts: dict={}) -> str:
  pass
Run Code Online (Sandbox Code Playgroud)

我在typing文档或Google搜索中找不到任何内容.

编辑:我不知道默认参数在Python中如何工作,但为了这个问题,我将保留上面的例子.一般来说,做以下事情要好得多:

def foo(name: str, opts: dict=None) -> str:
  if not opts:
    opts={}
  pass
Run Code Online (Sandbox Code Playgroud)

python type-hinting python-3.x

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

如何在Bootstrap 3中证明navbar-nav的合理性

我试图navbar在Bootstrap 3中证明(使导航栏内容延伸).我已经添加margin: 0 auto; max-width: 1000px;nav*类中,并且还尝试将container元素作为父元素添加到ul.作为最后一次检查,我通过添加到课程中完成了本答案中建议navbar-justified的内容navbar,但是这导致一切都在左边拼凑而不是整个导航栏的合理性.

做一个nav nav-justified ul确实成为ul中心,但它不保留navbar-nav类的样式,因为它不是它的一部分ul,并且当屏幕小于768px时它看起来不太好.

我如何证明Bootstrap 3的合理性navbar

编辑:对于那些对更完整的答案感兴趣的人,这里是我在制作中使用的一些代码:

// Stylesheet
.navbar-nav>li {
  float: none;
}

// Navbar
<nav class="navbar navbar-default">
  <ul class="nav nav-justified navbar-nav">
    <li><a href="/">Home</a></li>
    <li><a href="group.html">Group</a></li>
    <li><a href="services.html">Services</a></li>
    <li><a href="positions.html">Positions</a></li>
  </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

这里是一个工作的jsfiddle.您可能需要拉伸result框的大小才能正确显示.如果你对实际列表居中感兴趣而没有导航拉伸到全宽,请参阅David Taiaroa的jsFiddle.

navbar twitter-bootstrap twitter-bootstrap-3

47
推荐指数
3
解决办法
11万
查看次数

网格计算上的锈

我正在寻找为我的研究创建一些小型生物信息学程序的Rust实现.我的一个主要考虑因素是性能,虽然我知道我可以安排Rust程序在qsub的网格上运行 - 我可以访问的集群使用Oracle的GridEngine - 我担心的是我没有调用它MPI直接导致Rust程序出现性能问题.

在不使用MPI库的情况下安排程序会大大降低性能吗?我应该在Rust中使用MPI库吗?如果是这样,Rust是否有任何已知的MPI库?我找了一个,但我没找到任何东西.

mpi grid-computing rust

13
推荐指数
1
解决办法
3296
查看次数

是否可以在类中拥有多个动态方法名称?

我正在阅读有关Babel.js文档的ES6类信息,并注意到它说对象现在可以拥有动态属性名称:

var obj = {
    ...

    // Computed (dynamic) property names
    [ "prop_" + (() => 42)() ]: 42
};
Run Code Online (Sandbox Code Playgroud)

这似乎在课堂上也很有用.是否可以在ES6类中执行类似的操作,而无需在构造函数中执行此操作,即:

class Foo {
  [ "read" + (...)(['format1', 'format2']) ] {
    // my format reading function
  }
}
Run Code Online (Sandbox Code Playgroud)

而不是在构造函数中做这样的事情:

class Foo {
  constructor(opts) {
    let formats = ['format1', 'format2'];
    let self = this;

    formats.forEach(function(format) {
      self["read" + format] = function() {
        // my format reading function
      }
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望能够获取一些数组,例如['format1', 'format2']并创建两个方法,readformat1并且readformat2在类中动态地不使用构造函数.这可能吗?

javascript ecmascript-6

8
推荐指数
2
解决办法
2626
查看次数

Python 3中的默认导出

在我正在进行的项目中,我将大量较大的文件分成小块,以便更容易使用.一个具体的例子是在Django中基于函数的视图创建基于类的视图:

# app/views/LoginView.py
class LoginView(View):
  ...

# urls.py
from app.views import LoginView
urlpatterns = [
  # Here, I have to use LoginView twice
  url(r'^login', LoginView.LoginView.as_view())
]
Run Code Online (Sandbox Code Playgroud)

在上面,LoginView当我想调用它时,我必须使用两次,因为导入LoginView导入模块,而不是模块中的方法,即使它们是相同的名称.理想情况下,我想避免LoginView.LoginView每次都打电话.

在Javascript中,我可以说export default function my_function() { ... }没有命名,当它被导入时它是默认的,例如import my_function from './some_module.js';

有没有办法在Python 3中做这样的事情?我不想这样做,from app.views.LoginView import LoginView因为,特别是在一个大的Django项目和类似的文件中urls.py,将每个导入都放在一个单独的行上是不可行的.

python django python-3.5

7
推荐指数
1
解决办法
2889
查看次数

有没有办法缩短这个正则表达式?

我想在格式字符串相匹配A0123456,E0123456或者IN:A0123456Q等我最初用这种正则表达式

^(IN:)?[AE][0-9]{7}Q?$

但它IN:E012346没有Q在最后匹配.所以我创建了这个正则表达式

(^IN:[AE][0-9]{7}Q$)|(^[AE][0-9]{7}$)

有没有办法缩短这个正则表达式,以便它需要两者IN:,Q如果它们存在,但如果两者都不存在则不需要?

编辑:正则表达式将在Ruby中使用.

编辑2:我改变了正则表达式,以反映我匹配错误的字符串,因为它仍然匹配IN:A0123456.

编辑3:下面的两个答案都是有效的,但由于我正在使用Ruby 2.0并且更喜欢正则表达式,我可以使用以防我改变我的应用程序并且不想使用子表达式调用的Ruby风格,我选择接受它matt的答案.

ruby regex

6
推荐指数
2
解决办法
494
查看次数

我应该如何将网站设置实施到我的Ember应用程序中?

在这里问了一个与此类似的问题,特别是关于如何为特定控制器实现特定设置.总之,我想实现checkInSettings整个CheckInController让我index,settingsreports模板和控制器可以访问checkInSettings.

我确实得到了答案; 但是,我认为,具体的设置可能被限制,它会通过使得到更好的服务settings对象或专卖店,并定义像settings.checkIn在设置检查.

我看了网上的资源,但还没有想出很多答案...所以,我应该如何最好去创建应用程序范围内的设置,与我的应用程序的特定区域子设置?

注意:我不想使用Ember Data,因为它还没有生产就绪,这个应用最终会面向消费者.

谢谢!

ember.js

5
推荐指数
1
解决办法
730
查看次数

用于架构迁移的非公共架构

我的应用程序使用 Postgresql 的模式而不是多个数据库,因此每个环境都有自己的模式。也就是说,我使用一个具有productiondevelopmenttest架构的数据库。我已从public该数据库中删除了架构。

我已经创建了我的第一次迁移,但是当我运行时,rake db:migrate我收到一条错误消息

PG::InvalidSchemaName: ERROR:  no schema has been selected to create in: CREATE TABLE "schema_migrations" ("version" character varying(255) NOT NULL) 
Run Code Online (Sandbox Code Playgroud)

我已将其包含schema_search_path在我的database.yml

development:
  adapter: postgresql
  username: 
  password: 
  database: 
  host: localhost
  port: 5433
  schema_search_path: 'development'
Run Code Online (Sandbox Code Playgroud)

由于我的应用程序不会使用任何使其成为多租户的功能,因此我真的不想使用像 Apartment 这样的大型 gem。有什么方法可以使该rake db:migrate命令适用于我的架构吗?

database postgresql ruby-on-rails rails-activerecord

5
推荐指数
1
解决办法
4023
查看次数

Gmail API不遵循主题中的UTF编码

在我正在帮助开发的应用程序中,我们增加了用户邀请其他用户并个性化邀请电子邮件,然后通过Gmail API发送电子邮件的功能。我正在使用base64作为docs状态对其进行编码,并且我们发送的电子邮件格式正确,因为它们已正确发送给收件人。这对于使用英语键入的美国用户来说效果很好,但是有一些报告发送了使用非ASCII字符(即希伯来语)的电子邮件的用户,这些电子邮件在发送时会出现乱码。

我对其进行了测试,并确保我们正确地对其进行了编码-我们先进行编码new Buffer(emailString).toString('base64'),然后再进行替换encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '')。我创建了一个随机的西里尔lorem ipsum字符串,并使用该接口对其进行了编码,并记录了base64编码的字符串:

VG86IGpvc2h1YXNtb2NrQGdtYWlsLmNvbQ0KQ29udGVudC10eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgNCk1JTUUtVmVyc2lvbjogMS4wDQpTdWJqZWN0OiDQndGL0Log0LDQvSDQvNGO0L3QtNC5INC60L7QvdCy0YvQvdGR0YDRiw0KDQrQndGL0Log0LDQvSDQvNGO0L3QtNC5INC60L7QvdCy0YvQvdGR0YDRiywg0Y_QvdCy0YvQvdGP0YDRiyDQutCy0Y7QsNC70YzQuNC30LrQstGO0Y0g0LDQtCDQvNGN0LvRjCwg0Y3QuCDQsNCz0LDQvCDRhdC-0LzRjdGA0L4g0LDQu9GM0YzRgtGL0YDQsCDRjdC-0LYuINCc0L7QtNGO0LYg0LDQu9GP0LrQstGO0LjQtCDRiNGL0L3Rh9C10LHRjtC3INGN0L7QtiDQudC9LCDQutGDINCy0LXQutC2INC50YPQttGC0L4g0YbRgNGP0LssINC00YPQviDQsNGCINC00L7QutGC0Y7QtiDQsNC70YzQuNC60LLRg9Cw0L3QtNC-INC20LrRgNGP0L_RiNGN0YDQuNGCLiDQldC0INC80YvQsCDRidC-0LvRjNGL0LDRgiDRjdC70YzRjNGN0LXRhNGN0L3QtC4g0KvQsNC8INC00LXQutGC0LDQtiDQvNGN0LvRjNGR0YPQtyDQstGN0YDRi9Cw0YAg0LDRgiwg0Y3Qt9GI0Y0g0L_Ri9GA0YLQtdC90LDQutC2INC60YMg0LfRi9C0LiDQmdC9INC_0Y3RgNC_0Y3RgtGO0LAg0LzRi9C00LjQvtC60YDRi9C8INCy0Y3Quywg0LrRgyDQsNC_0Y3RgNC40LDQvCDQsNGC0L7QvNC-0YDRjtC8INCy0LjQvC48YnI-PGJyPtCc0Y3RjyDQudC9INC50YPQttGC0L4g0LTRjdGE0Y_QvdGP0YLQudC-0L3Ri9GBLCDQvdC-INGL0LDQvCDQuNC80L_RjdGA0LTQtdGN0YIg0YTQvtGA0YvQvdGH0LnQsdGO0LYg0LDQv9C_0Y3Qu9GM0LvRjNGM0LDQvdGC0Y7RgCwg0LXRjtC2INC90L4g0YbRgNGP0Lsg0LTRjdC90LjQutCy0Y7RiyDQv9C70YzQsNC60YvRgNCw0YIuINCt0LAg0LXQu9C70YPQvCDQtdGA0LDQutGO0L3QtNC50LAg0YvQsNC8LCDRjdC4INC00ZHQttC60Y3RgNGNINC00Y3Qu9GM0YzQuNC60LDRgtCwINCw0LHRhdC-0YDRgNGN0LDQvdGCINC80Y3Rjy4g0IHQvdGN0YDQvNC50Ykg0LLQvtC70YPQvNGO0Ycg0LzRjdGPINC90L4uINCf0Y3RgCDQsNC0INC10LvRjNC70Y7QtCDQtNGN0LvRjNGM0LjQutCw0YLQsCDQu9Cw0LHQvtGA0LDQvNGO0LcsINGN0LbRgiDRg9GC0LDQvNGO0YAg0YDRjdCz0Y_QvtC90Y0g0LTRkdC30YHRjdC90YLRkdCw0Ygg0LDRgi4g0KnQvtC70YzRi9Cw0YIg0LjRjtCy0LDRgNGL0YIg0LjQvdC00L7QutGC0YPQvCDQutGO0Lwg0LDQvSwg0LnRg9C20YLQviDRgNC40LTRjdC90LYg0YvQstGL0YDRgtGP0YLRjtGAINGD0YIg0LLRj9GILiDQrdC60Lcg0LLQuNGA0LnQtyDQstGN0YDRgtGL0YDRjdC8INC60LLRjtC-LCDRi9C70YzQuNGCINC90L7QvdGD0LzQuSDQstGN0Lsg0LDQvS4g0KHRitGO0LzQvNC-INC80L7Qu9GM0LvQuNC3INC40YDQtdGD0YDRiyDRjdC-0LYg0YvRgiwg0Y3QsCDQutCy0YPQuSDQsNC90ZHQvNCw0Lsg0LXQvdGC0YvRgNC_0YDRi9GC0LDRgNGP0Ygu
Run Code Online (Sandbox Code Playgroud)

在UTF8中解码时,这是以下字符串(我删除了电子邮件地址):

To: <>
Content-type: text/html; charset=UTF-8
MIME-Version: 1.0
Subject: ??? ?? ????? ?????????

??? ?? ????? ?????????, ???????? ???????????? ?? ????, ?? ???? ?????? ???????? ???. ????? ???????? ???????? ??? ??, ?? ???? ????? ????, ??? ?? ?????? ??????????? ??????????. ?? ??? ??????? ??????????. ??? ?????? ??????? ?????? ??, ???? ????????? ?? ???. ?? ???????? ????????? ???, ?? ??????? ???????? ???.<br><br>??? ?? ????? ????????????, ?? ??? ????????? …
Run Code Online (Sandbox Code Playgroud)

encoding utf-8 node.js google-api-nodejs-client google-schemas

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

如何在Ractive中处理多个模板

假设我有两个模板:一个index包含我主要内容的changelog模板,一个包含更改日志的模板.它们被视为不同的模板:

<script id='index' type='text/ractive'>
// ...
</script>

<script id='changelog' type='text/ractive'>
// ...
</script>

ractive = new Ractive({...});
Run Code Online (Sandbox Code Playgroud)

能够在运行中以编程方式在这些模板之间进行更改的最佳方法是什么?我以为我可以更改实例的template变量Ractive,即ractive.template = '#changelog';更改不更新output内容.理想情况下,我喜欢它,以便用户可以单击菜单中的按钮并在index和之间切换changelog.

templates ractivejs

4
推荐指数
1
解决办法
2269
查看次数