小编S1a*_*wek的帖子

使用globals()创建类对象

我是编程的新手,所以请不要因为提出愚蠢的问题而杀了我.我一直在努力理解Python中的所有类业务,我到了无法通过谷歌找到我的问题的答案.

在我的程序中,我需要根据函数返回的字符串从其他类中调用一个类.我发现了两种解决方案:一种是使用getattr(),另一种是使用globals()/ locals().

决定采用第二种解决方案并使其正常工作,但我真的不明白它是如何工作的.

所以有代码示例:

class Test(object):
    def __init__(self):
        print "WORKS!"

room = globals()['Test'] 
room()
Run Code Online (Sandbox Code Playgroud)

type(room()) 得到:

<class '__main__.Test'>
Run Code Online (Sandbox Code Playgroud)

type(room) 得到:

<type 'type'> # What????
Run Code Online (Sandbox Code Playgroud)

它看起来像是room()一个类对象,但不应该room代替room()

请帮助我,因为如果我编写一些我不了解的代码,这有点傻.

python locals globals

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

数组的奇怪行为 - 无法理解为什么

我是JS的初学者,只是想了解下面代码中发生了什么.可能它是愚蠢的但是 - 好吧,就像我说的,我是初学者;)

首先它只是拆分数组,它是makeFriendlyDates(['2016-07-01', '2016-08-04']);函数的参数.

所以,在这个阶段一切都很好看.然而,当我打电话时function changeToFriendly(arr1);,只有存在的原因是将数字改为月份名称,它也会newArr以某种方式改变.

因此,如果我注释掉这一行://changeToFriendly(newArr);那么newArr应该是什么,但是如果它changeToFriendly(newArr);被调出,它会以某种方式改变,newArr而不仅仅是返回月份名称.

我的问题是如果函数不对数组做任何事情,只是遍历它并检查与月份名称对应的数字,如何changeToFriendly(newArr);改变newArr.

function makeFriendlyDates(arr) {
  var newArr = [];
  var elem;
  for (elem in arr) {
    newArr.push(arr[elem].split('-'));
  }
  document.getElementById('result').innerHTML = newArr;

  function changeToFriendly(arr1) {
    var month = '';
    var elem1;
    for (elem1 in arr1) {
      if (arr1[elem1][1] = '01') {
        month = 'January';
      } else if (arr1[elem1][1] === '02') {
        month = 'February';
      } else …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

0
推荐指数
1
解决办法
63
查看次数

标签 统计

arrays ×1

globals ×1

javascript ×1

locals ×1

python ×1