小编Pra*_*pta的帖子

追加将覆盖列表中的现有数据

我有一个python程序,应该将列表附加到全局变量,但是不附加它就是覆盖列表。这是我制作的演示函数,其工作原理相同:

var_gobal = []

def parse(list_parse,stack):
    for element in list_parse:
        stack.append(element["a"])
        print(stack)
        global var_gobal
        var_gobal.append(stack)

to_parse = [{"a":"abc","b":"bcd","c":"cde"},{"a":"def","b":"efg","c":"ghi"}]
parse(to_parse,[])
print (var_gobal)
Run Code Online (Sandbox Code Playgroud)

预期输出应为

[['abc'], ['abc', 'def']]
Run Code Online (Sandbox Code Playgroud)

但是我得到了

[['abc', 'def'], ['abc', 'def']]
Run Code Online (Sandbox Code Playgroud)

列表的第一个元素被覆盖。为什么会这样呢?

python python-2.7

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

为什么Spring AOP在某些情况下会拦截受保护的方法?

我读到Spring AOP无法拦截私有和受保护的方法,但它以奇怪的方式拦截它们为什么会这样?

我有这些我想截取的功能:

public String getName(String string) {
   System.out.println("Name : " + name + string);
   return name;
}

protected String getNamesprotected(String string) {
  System.out.println("Name : " + name + string);
  return name;
}
Run Code Online (Sandbox Code Playgroud)

这是我的@Aspect代码:

@Aspect
public class Logging {

    @Before("execution(* com.tutorialspoint.Student.*Name*(..))")
    public void beforeAdvice(JoinPoint joinPoint){
       System.out.println("Going to setup student profile."+joinPoint.getSignature().toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

执行此代码时,getName和getNamesprotected都会被拦截,但是当我执行此代码时:

@Aspect
public class Logging {

    @Before("execution(* com.tutorialspoint.Student.getNamesprotected(..))")
    public void beforeAdvice1(JoinPoint joinPoint){
       System.out.println("Going to setup student profile."+joinPoint.getSignature().toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

然后什么也没有截获.我也试过更换getNamesprotected*getNamesprotected*,但仍然不拦截.它只会在何时拦截*Name*. …

aop spring aspectj spring-aop

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

登录循环的时间复杂度

这个循环的复杂性是多少?

for (int i = 0; i < n; i++)
{
    for (int j = 0; j < log(i); j++)
    {
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

根据我的说法,内循环将是运行log(1)+log(2)+log(3)+...+log(n)时间,所以我如何计算其复杂性?

c++ algorithm loops time-complexity

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

重复插入时映射抛出错误

我正在创建一个存储一些数据的地图,并且如果尝试插入重复值,我希望地图抛出异常。

Map <Integer, String> temp;
temp.put(1, "hi");
temp.put(1, "hello");
Run Code Online (Sandbox Code Playgroud)

这里这个映射应该抛出一个错误,因为键“1”已经存在。它可能会抛出错误或无法编译。有没有说明功能的地图?

java dictionary

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