小编And*_*zlo的帖子

Scala 2.8和Scala 2.7之间最大的区别是什么?

我在Scala 2.7.5中编写了一个相当大的程序,现在我期待2.8版本.但我很好奇Scala演变的这一重大飞跃将如何影响我.

这两个版本的Scala之间最大的区别是什么?也许最重要的是:

  • 需要重写一下吗?
  • 重写任何东西只是为了利用一些很酷的新功能吗?
  • 一般来说,Scala 2.8的新功能究竟是什么?

scala

58
推荐指数
5
解决办法
9420
查看次数

如何处理Python中的"duck typing"?

我通常希望尽可能保持代码的通用性.我目前正在编写一个简单的库,并且能够在我的库中使用不同的类型,这次感觉非常重要.

一种方法是强制人们继承"接口"类.对我来说,这感觉更像是Java而不是Python,并且issubclass在每种方法中使用也听起来不太诱人.

我首选的方法是善意使用该物品,但这会引起一些AttributeErrors.我可以在try/except块中包装每个危险的调用.这也是一件很麻烦的事情:

def foo(obj):
    ...
    # it should be able to sleep
    try:
        obj.sleep()
    except AttributeError:
        # handle error
    ...
    # it should be able to wag it's tail
    try:
        obj.wag_tail()
    except AttributeError:
        # handle this error as well
Run Code Online (Sandbox Code Playgroud)

我是否应该跳过错误处理并期望人们只使用具有所需方法的对象?如果我做了一些愚蠢的事情,比如[x**2 for x in 1234]我实际上得到了一个TypeError而不是一个AttributeError(整数不可迭代)所以必须在某个地方进行一些类型检查 - 如果我想做同样的事情怎么办?

这个问题将是开放式的,但是以干净的方式处理上述问题的最佳方法是什么?有没有既定的最佳实践?例如,上面的可迭代"类型检查"是如何实现的?

编辑

虽然AttributeErrors很好,但TypeErrors本机函数引发的函数通常会提供有关如何解决错误的更多信息.以此为例:

>>> ['a', 1].sort()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable …
Run Code Online (Sandbox Code Playgroud)

python oop types duck-typing

26
推荐指数
4
解决办法
6031
查看次数

如何在管理界面中内联编辑django用户配置文件?

如果你想在Django中存储关于用户(django.contrib.auth.models.User)的额外信息,你可以使用漂亮的AUTH_PROFILE_MODULE来插入"profile"模型.然后每个用户获取一个配置文件 这一切都在这里描述:

现在,假设我已经使用名为UserProfile的模型创建了一个名为accounts的应用程序,并将其注册为我的用户的配置文件模型.如何在管理界面中内联编辑配置文件以编辑用户(反之亦然)?

django django-admin django-users

19
推荐指数
3
解决办法
1万
查看次数

Perl的postfix`for`语法在哪里记录?

我最近遇到了以下代码片段

$count_stuff{$_}++ for @stuff;
Run Code Online (Sandbox Code Playgroud)

例如,使用哈希来计算数组中字符串的出现是一种非常方便的方法.我理解它是如何工作的,但不是为什么它有效.我无法找到使用这种方式的文档进行.

它为什么有效?文档在哪里?

syntax perl

19
推荐指数
1
解决办法
2906
查看次数

环境变量缓存在Rails配置中?

这种行为让我很困惑.似乎我ENV或我的配置的内容缓存在某个地方.以下是如何重现它:

在一个新的应用程序(我使用Ruby 2.0.0和Rails 4.2.1)中,编辑application.rb:

$ cat config/application.rb 
require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require(*Rails.groups)

module Myapp
  class Application < Rails::Application
    config.active_record.raise_in_transactional_callbacks = true

    config.env_foo = ENV['FOO']
  end
end
Run Code Online (Sandbox Code Playgroud)

配置项env_foo现在是nil:

$ unset FOO  # make sure FOO is unset
$ rails console
Loading development environment (Rails 4.2.1)
2.0.0-p598 :001 > Rails.application.config.env_foo
 => nil
Run Code Online (Sandbox Code Playgroud)

设置一些环境变量,看看会发生什么:

$ export FOO=barbapapa
$ rails console
Loading development environment (Rails 4.2.1)
2.0.0-p598 :001 > Rails.application.config.env_foo
 => nil 
2.0.0-p598 :002 > …
Run Code Online (Sandbox Code Playgroud)

ruby environment-variables ruby-on-rails-4

12
推荐指数
1
解决办法
3324
查看次数

易于使用的Perl模块用于神经网络

在我正在进行的项目中,我有一个决策问题,我的尝试都没有给出令人满意的结果:使用领域特定知识,尝试生成统计数据和创建统计模型等.

我有关于神经网络的基本知识,现在我想尝试一下,如果这种方法可能产生一些好的结果.我有很多数据,所以我想要的只是建立一个简单的NN,训练它,看看我得到了什么.

你知道任何可能用于此目的的Perl模块吗?我找到了一些,但我不想浪费时间尝试所有这些.

perl artificial-intelligence module neural-network

11
推荐指数
1
解决办法
1772
查看次数

如何在Predis中使用带有MATCH选项的SCAN

我之前使用该KEYS命令来搜索与Redis数据库中的某个模式匹配的密钥.从Redis 2.8开始,SCAN命令似乎是首选,KEYS因为它返回迭代器而不是一次扫描整个键空间.

我正在使用Predis > = 0.8.5,它应该支持该SCAN命令的PHP迭代器.Predis没有很多文档,所以我想知道如何将以下KEYS命令转换为它的SCAN对应物:

$client->keys($pattern)
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

$client->scan('MATCH', $pattern);
Run Code Online (Sandbox Code Playgroud)

哪种工作 - 但它不返回本机PHP迭代器.使用Predis的内置迭代器支持会非常好.

php redis predis

10
推荐指数
1
解决办法
7741
查看次数

渲染中的Vue错误:“ RangeError:无效的数组长度”

Vue:第2版。*

在我的项目vuejs中,我将v-for范围与计算

已计算

computed: {
   numberOfPages() {
         const result = Math.ceil(this.collection.total / this.collection.per_page)
         return (result < 1) ? 1 : result
    }
},
Run Code Online (Sandbox Code Playgroud)

模板

<li class="waves-effect" v-for="(number,index) in numberOfPages" 
    :key="index" :class="collection.current_page == number ? 'active' : ''"
     @click="currentPage(number)">
   <a class="">{{number}}</a>
</li>
Run Code Online (Sandbox Code Playgroud)

错误控制台

1- [Vue warn]: Error in render: "RangeError: Invalid array length"

2- RangeError: Invalid array length

vue.js v-for

6
推荐指数
1
解决办法
3767
查看次数

我可以用hex字符串文字做什么?

我正在学习Java,而且我正在阅读关于hex String literals的书籍章节.它告诉我,我可以用这种格式创建一个十六进制字符串文字:"\ uxxxx".所以我尝试了这个:

char c = '\u0010';
int x = c;
System.out.println(x);  // prints 16.
Run Code Online (Sandbox Code Playgroud)

首先,为什么以下的十六进制字符串文字会导致编译错误?我期待十六进制中的'a'等于十进制10.

char c = '\u000a';
Run Code Online (Sandbox Code Playgroud)

返回以下错误:

..\src\pkgs\main\Main.java:360: error: illegal line end in character literal
                char c = '\u000a';
Run Code Online (Sandbox Code Playgroud)

其次,由于我的新手Java状态,我目前无法理解使用的是十六进制字符串文字.我为什么要使用一个?有人可以请我提供他们使用的"真实世界"示例吗?非常感谢.

java hex

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

Python中的Tab错误

以下python代码抛出此错误消息,我不知道为什么,我的选项卡似乎排成一行:

File "test.py", line 12
    pass
       ^ TabError: inconsistent use of tabs and spaces in indentation
Run Code Online (Sandbox Code Playgroud)

我的代码:

class eightPuzzle(StateSpace):
    StateSpace.n = 0

    def __init__(self, action, gval, state, parent = None):
        StateSpace.__init__(self, action, gval, parent)
        self.state = state

    def successors(self) :
        pass
Run Code Online (Sandbox Code Playgroud)

python indentation python-3.x

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