标签: scope

高级嵌套列表理解语法

我正在玩列表推导以更好地理解它们,我遇到了一些我无法解释的意外输出.我之前没有找到这个问题,但如果是/是/重复的问题,我道歉.

我本质上是在尝试编写一个生成生成器的生成器.使用列表推导的简单生成器如下所示:

(x for x in range(10) if x%2==0) # generates all even integers in range(10)
Run Code Online (Sandbox Code Playgroud)

我试图做的是编写一个生成两个生成器的生成器 - 第一个生成范围(10)中的偶数,第二个生成范围(10)中的奇数.为此,我做了:

>>> (x for x in range(10) if x%2==i for i in range(2))
<generator object <genexpr> at 0x7f6b90948f00>

>>> for i in g.next(): print i
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <genexpr>
UnboundLocalError: local variable 'i' referenced before assignment
>>> g.next()
Traceback (most recent call last):
  File "<stdin>", line 1, in …
Run Code Online (Sandbox Code Playgroud)

python syntax scope list-comprehension

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

基类和派生类中的静态字段

abstract基类中,如果我们有一些static字段,那么它们会发生什么?

它们的范围是从这个基类继承的类,还是从它继承的类型(每个子类都有自己staticabstract基类副本)?

c# static scope

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

符合POSIX的方法将范围变量扩展到Shell脚本中的函数

是否有POSIX兼容方法将变量的范围限制为声明的函数?即:

Testing()
{
    TEST="testing"
}

Testing
echo "Test is: $TEST"
Run Code Online (Sandbox Code Playgroud)

应打印"测试是:".我已经阅读过declare,local和typeset关键字,但它们看起来并不像POSIX内置函数.

variables shell posix scope function

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

AngularJS中的$ scope是什么?

我是AngularJS的新手,我无法理解$scopeAngularJS中的内容.有人可以用最简单的方式解释$scopeAngularJS中的功能以及我们可以使用它做什么.请解释一下,你会解释一个完全没有编程知识的人.也有人可以用最简单的方式逐行解释下面的代码吗?

function MyController($scope) {
    $scope.username = 'World';

    $scope.sayHello = function() {
        $scope.greeting = 'Hello ' + $scope.username + '!';
    };
};
Run Code Online (Sandbox Code Playgroud)

javascript scope angularjs

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

Dagger2自定义范围:自定义范围(@ActivityScope)如何实际工作?

我正在阅读GitHub上的Dagger2组件范围测试的源代码,我看到为被调用的活动定义了"自定义范围" @ActivityScope,但我在其他项目中看到了它,包括具有其范围的4模块CleanArchitecture@PerActivity.

但从字面上看,@ActivityScope注释的代码如下:

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import javax.inject.Scope;

/**
 * Created by joesteele on 2/15/15.
 */
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope {
}
Run Code Online (Sandbox Code Playgroud)

它在模块中"神奇地"可用:

@Module
public class ActivityModule {
  @Provides @ActivityScope Picasso providePicasso(ComponentTest app, OkHttpClient client) {
    return new Picasso.Builder(app)
        .downloader(new OkHttpDownloader(client))
        .listener(new Picasso.Listener() {
          @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception e) {
            Log.e("Picasso", "Failed to load image: " + uri.toString(), e);
          }
        })
        .build();
  }
}
Run Code Online (Sandbox Code Playgroud)

或者CleanArchitecture …

android scope android-activity dagger-2

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

Python范围

我想弄清楚这个:

c = 1
def f(n):
    print c + n 
def g(n):
    c = c + n

f(1) # => 2
g(1) # => UnboundLocalError: local variable 'c' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

谢谢!

python scope

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

Ruby在嵌套函数中访问外部变量

我相信这有一个简单的答案; 我似乎无法找到它.我在Ruby中创建了一个嵌套函数,但我无法从内部函数内部的外部函数访问变量:

def foo(x)
  def bar
    puts x
  end
  bar
  42
end

foo(5)
Run Code Online (Sandbox Code Playgroud)

我得到:NameError: undefined local variable or methodx'为main:Object`

类似的Python代码有效:

def foo(x):
  def bar():
    print x
  bar()
  return 42

foo(5)
Run Code Online (Sandbox Code Playgroud)

那么我如何在Ruby中做同样的事情呢?

ruby scope nested

41
推荐指数
1
解决办法
8022
查看次数

在ECMAScript5中,"使用严格"的范围是什么?

严格模式编译指示在ECMAScript5中有什么范围?

"use strict";
Run Code Online (Sandbox Code Playgroud)

我想这样做(主要是因为JSLint没有抱怨它):

"use strict";

(function () {
  // my stuff here...
}());
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否会破坏其他代码.我知道我可以做到这一点,这将把pragma的范围扩展到函数...

(function () {

  "use strict";

  // my stuff here...

}());
Run Code Online (Sandbox Code Playgroud)

但JSLint抱怨它(当启用"严格"JSLint选项时),因为它认为您在启用"use strict"之前正在执行代码.

这是我的问题.如果我有fileA.js:

"use strict";
// do some stuff
Run Code Online (Sandbox Code Playgroud)

和fileB.js:

eval( somecodesnippet ); // disallowed by "use strict"
Run Code Online (Sandbox Code Playgroud)

然后将它们以相同的顺序包含在我的html页面中,将pragma限定为文件,还是将pragma放到fileB中,从而阻止eval执行?

javascript scope strict ecma262 ecmascript-5

41
推荐指数
2
解决办法
7644
查看次数

Bash中声明,排版和局部变量之间的差异

在Bash中键入变量时,declare和之间有什么区别typeset?当一个函数内部使用:之间有什么区别declaretypesetlocal

我遇到的唯一区别是typeset可以移植到ksh脚本.除此之外,有什么理由说为什么一个人应该优先于另一个?

更新:添加local到问题.

variables bash shell scope declare

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

在函数内部使用ddply找不到对象错误

这确实挑战了我调试R代码的能力.

我想ddply()用于将相同的函数应用于按顺序命名的不同列; 例如.a,b,c.为此,我打算重复将列名称作为字符串传递,并使用eval(parse(text=ColName))该函数来引用它.我从另一个答案中抓住了这个技术.

这很有效,直到我放入ddply()另一个功能.以下是示例代码:

# Required packages:
library(plyr)

myFunction <- function(x, y){
    NewColName = "a"
    z = ddply(x, y, summarize,
            Ave = mean(eval(parse(text=NewColName)), na.rm=TRUE)
    )
    return(z)
}

a = c(1,2,3,4)
b = c(0,0,1,1)
c = c(5,6,7,8)
df = data.frame(a,b,c)
sv = c("b")

#This works.
ColName = "a"
ddply(df, sv, summarize,
        Ave = mean(eval(parse(text=ColName)), na.rm=TRUE)
)

#This doesn't work
#Produces error: "Error in parse(text = NewColName) : object 'NewColName' not found"
myFunction(df,sv)

#Output in both …
Run Code Online (Sandbox Code Playgroud)

scope r function plyr

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