将用户输入设置为变量名称

时间:2015-04-23 12:59:41

标签: python

我正在使用python并且想知道是否可以向用户询问变量的名称,然后使用此名称创建变量。例如:

var allTestFiles = [];
var TEST_REGEXP = /spec/i;

var pathToModule = function(path) {
  return path.replace(/^\/base\//, '').replace(/\.js$/, '');
};

Object.keys(window.__karma__.files).forEach(function(file) {
  if (TEST_REGEXP.test(file)) {
    // Normalize paths to RequireJS module names.
    allTestFiles.push(pathToModule(file));
  }
});

require.config({
  // Karma serves files under /base, which is the basePath from your     config file
  baseUrl: '../',

  //  dynamically load all test files
  deps: allTestFiles,

  // we have to kickoff jasmine, as it is asynchronous
  callback: window.__karma__.start,

  paths: {
    'jquery' : 'lib/jqm/jquery-1.11.2.min',
    'underscore' : 'lib/underscore/underscore',
    'backbone' : 'lib/backbone/backbone',       
    'template' : '../template',
 },

  shim : {
        backbone : {
            deps : [ 'underscore', 'jquery' ],
            exports : 'Backbone'
        }
   }
});

我知道可以使用字典来完成,但我想知道在不创建其他对象的情况下是否可行。我正在使用python 3.谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用通过globals()

调用返回的词典
input_name = raw_input("Enter variable name:") # User enters "orange"
globals()[input_name] = 4
print(orange)

如果您不希望将其定义为全局变量,则可以使用locals()

input_name = raw_input("Enter variable name:") # User enters "orange"
locals()[input_name] = 4
print(orange)

答案 1 :(得分:1)

如果你的代码在函数之外,你可以通过修改本地代码来实现。

my_name = raw_input("Enter a variable name")  # Plain input() in Python 3
localVars = local()
localVars[my_name] = 5

如果你在一个功能中,它就无法完成。 Python在依赖于事先知道变量名称的函数中执行各种优化 - 您无法在函数中动态创建变量。

此处提供更多信息:https://stackoverflow.com/a/8028772/901641