AttributeError: 'function'对象没有属性'my_args

2 投票
2 回答
9248 浏览
提问于 2025-04-17 02:53

我该如何在 __main__ 中访问 my_args 列表数据类型呢?

test1.py

#!/usr/bin/env python

def main():
    print 'main function'
    one()

def one():
    print 'one function'
    my_args = ["QA-65"]

def two():
    print 'two function'

if __name__ == "__main__":
    main()
    getattr(my_args, pop)

2 个回答

0

可以使用global来做到这一点。

#!/usr/bin/env python

def main():
    print 'main function'
    one()

def one():
    print 'one function'
    global my_args
    my_args = ["QA-65"]

def two():
    print 'two function'

if __name__ == "__main__":
    main()
    print my_args.pop()

演示链接

只是因为你可以这样做,并不意味着你应该这样做!

3

你可以通过在 one() 函数中 return 它们来实现:

#!/usr/bin/env python

def main():
    print 'main function'
    args = one() # returns my_args, which i'm assigning to args
    print 'i got args from one():', args
    print args.pop()

def one():
    print 'one function'
    my_args = ["QA-65"]
    return my_args

def two():
    print 'two function'

if __name__ == "__main__":
    main()
    #getattr(my_args, pop)
    # ^^^ Moved this up to main() ^^^

输出结果:

main function
one function
i got args from one(): ['QA-65']
QA-65

撰写回答