标签: globals

在类之间共享对象的好方法是什么?

在类层次结构中的几个类之间共享对象实例的好方法是什么?我有以下情况:

class texture_manager;

class world {
    ...
    std::vector<object> objects_;
    skybox skybox_;
}
Run Code Online (Sandbox Code Playgroud)

我目前将texture_manager实现为单例,客户端从代码中的任何位置调用其实例化方法.texture_manager需要objectobjects_向量中使用s skybox_,并且可能由其他类使用,这些类可能是也可能不是world类的一部分.由于我试图在我的代码中限制单例的使用,您是否建议使用此方法的替代方法?我想到的一个解决方案是将texture_manager引用作为参数传递给需要访问它的所有类的构造函数.谢谢.

c++ singleton global-variables globals

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

PHPUnit和Globals

我正在学习和探索PHP 5.2.9的PHPUnit应用程序,并遇到了全局问题.我已将$ backupGlobals设置为FALSE,包括文档'@backupGlobals disabled',这似乎不会影响PHPUnit备份全局变量的行为.有什么我想念的吗?我需要更改PHPUnit的xml文件吗?创建一个引导程序?

config.php文件:

$testString = 'Hello world!';
Run Code Online (Sandbox Code Playgroud)

basicApp.php:

require ('D:\data\clients\security.ca\web_sites\QRASystems.com\wwwroot\__tests\BasicApp\config.php');

class BasicApp {

public $test;

public function __construct() {
    global $testString;
    $this->test = $testString;
}

public function getTest() {
    return $this->test;
}

public function setTest($test){
    $this->test = $test;
}
Run Code Online (Sandbox Code Playgroud)

BasicAppTest.php:

require ('D:\data\clients\security.ca\web_sites\QRASystems.com\wwwroot\__tests\BasicApp\BasicApp.php');

class BasicAppTest extends PHPUnit_Framework_TestCase{
    protected $testClass;
    protected $backupGlobals = FALSE;
    protected $backupGlobalsBlacklist = array('testString');

    public function SetUp(){
        $this->testClass = new BasicApp;
        $this->testClass->bootstrap();
    }

    public function testGlobal(){
        echo $this->testClass->getTest();
        $this->assertNotNull($this->backupGlobals);
        $this->assertFalse($this->backupGlobals);
        $this->assertNotEmpty($this->testClass->test);
    }

    public function testMethods(){
        $this->testClass->setTest('Goodbye …
Run Code Online (Sandbox Code Playgroud)

php phpunit globals

9
推荐指数
1
解决办法
8228
查看次数

是否可以从函数内部导入全局范围(Python)?

我正在尝试从函数内部导入一个模块,并使其可用于我的整个文件,就像我在任何函数之外和所有其他代码之前导入一样.它在函数中的原因是因为我没有太多控制脚本的结构.这是否可能不诉诸于黑客__builtin__或传递我需要的所有代码?

python import globals

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

Flask如何保持请求全局线程安全

在flask中,每个函数都可以访问全局请求.当另一个请求开始时,烧瓶的设计者如何阻止那个全局被覆盖?

python globals flask

8
推荐指数
1
解决办法
2375
查看次数

帮助理解javascript全局减排技术

来自DailyJS "让我们构建一个JavaScript框架"我对以下代码不太确定,显然是用作全局减排技术.

到目前为止,我的理解是在(function(){}).我理解设置turing var up,将global.turing设置为turing,然后返回窗口或者这个(如果不是在浏览器中),但是(function(global){})(this或window)让我感到困惑......我见过像这样的东西

var mything = {} 并在我的东西下设置你的所有代码,但这个成语让我有点困惑.

我真的很想理解这里的推理并记住它"有效"

(function(global) {
  var turing = {
    VERSION: '0.0.1',
    lesson: 'Part 1: Library Architecture'
  };

  if (global.turing) {
    throw new Error('turing has already been defined');
  } else {
    global.turing = turing;
  }
})(typeof window === 'undefined' ? this : window);
Run Code Online (Sandbox Code Playgroud)

javascript globals

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

在不同模块的上下文中使用类

我想修改标准库中的一些类,以使用与该模块中其他类使用的不同的全局变量集.

此示例仅为示例:

# module_a.py

my_global = []

class A:
    def __init__(self):
        my_global.append(self)

class B:
    def __init__(self):
        my_global.append(self)
Run Code Online (Sandbox Code Playgroud)

在这个例子中,如果我创建一个Avia 的实例A(),它将调用append名为的对象my_global.但是现在我希望创建一个新模块,导入B它,并从已导入的模块中B使用my_global,而不是原始定义my_global的模块B.

# module_b.py

from module_a import B

my_global = []
Run Code Online (Sandbox Code Playgroud)

有关

我正在努力解释我的问题,这是我之前的尝试,其实确实提出了一些完全不同的东西:

Update0

  • 上面的例子仅用于说明我想要实现的目标.
  • 由于类没有变量范围(不像C++),我认为对全局变量的引用不存储在类中,而是在定义时附加到每个函数.

UPDATE1

标准库要求提供一个示例:

许多(也许所有?)的在类threading模块使用全局变量如_allocate_lock,get_ident_active定义在这里这里.如果不更改该模块中的所有类,则无法更改这些全局变量.

python namespaces module globals python-3.x

7
推荐指数
2
解决办法
464
查看次数

未命名的命名空间Vs全局声明

使用未命名的命名空间和全局声明有什么区别?
使用这两个是否有任何特定的背景?
我们可以在外部源文件中访问未命名的命名空间组件吗?

c++ namespaces declaration globals unnamed-namespace

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

是否可以使用HTML5表单标签而不泄漏全局变量?

标准HTML 5表单标签需要ID来将标签链接到输入.

<form>
  <label for="male">Male</label>
  <input type="radio" id="male"/>
  <label for="female">Female</label>
  <input type="radio" id="female"/>
</form>
Run Code Online (Sandbox Code Playgroud)

正如大多数JS开发人员所知,在这种情况下,使用ID会泄漏全局变量window.male并被window.female创建.

如何在不创建全局变量的情况下使用表单标签?

javascript forms html5 globals

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

聚合物全局属性有些奇怪

在我的测试中,我有3个从主html文件导入的元素:

    <html><head><title>my-app</title>
    <script src="bower_components/webcomponentsjs/webcomponents.min.js"></script>
    <link rel="import" href="elements/app-globals.html">
    <link rel="import" href="/Polymer/my-app/elements/my-categories.html">
    <link rel="import" href="/Polymer/my-app/elements/my-items.html">
  </head>
  <body>
    <my-categories></my-categories>
    <my-items></my-items>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

'app-globals.html'是:

    <link rel="import" href="../bower_components/polymer/polymer.html">
<polymer-element name="app-globals" attributes="data selectedCategoryId selectedItemId">
    <script>
    (function() {
    var values = {};
    Polymer('app-globals', {
        ready: function() {
            console.log("app-globals -> ready");
            this.values = values;
            console.dir(this.values);
        },
    });
    })();
    </script>
</polymer-element>
Run Code Online (Sandbox Code Playgroud)

'我-categories.html':

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="/Polymer/my-app/elements/app-globals.html">

<polymer-element name="my-categories">
  <template>
    <app-globals id="globals"></app-globals>
    <div>selectedCategoryId = {{$.globals.values.selectedCategoryId}}</div>
    <ul>
      <template repeat="{{category in categories}}">
        <li class="li-category" data-_id="{{category._id}}" on-tap="{{selectCategory}}">{{category.name}}</li>
      </template>
    </ul>
  </template>
  <script> …
Run Code Online (Sandbox Code Playgroud)

globals polymer

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

有没有一种很好的方法来共享模块之间的随机种子(在python中)?

我有一个包含不同主文件的项目(针对不同的模拟).当我运行其中一个主文件时,它应该将种子设置为随机(和numpy.random),并且项目中的所有模块都应该使用该种子.

我找不到一个很好的方法来做到这一点.我有一个文件globals.py与此:

import random

myRandom=None


def initSeed(seed):
    global myRandom
    myRandom =random.Random(seed)
Run Code Online (Sandbox Code Playgroud)

然后从一个主要的我做:

if __name__ == "__main__":

    seed=10
    globals.initSeed(seed)
...
Run Code Online (Sandbox Code Playgroud)

然后在主要调用的模块中,我做:

from globals import myRandom
Run Code Online (Sandbox Code Playgroud)

但myRandom在模块中的值为None(即使我在main中修改了它!).为什么,以及如何解决它?有更好的方法吗?

python random seed globals

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