先看一个很简单的程序(写在q.py),不报错:
print('hello world')
class Test1():
def __init__(self, config):
self.name=config
def uu(self):
print('我是一个函数',self.name)
a=Test1('sss')
a.uu()
输出是:hello world
我是一个函数 sss
现在我用w.py中写:
import q
q.Test1.uu('www')
这样就会报错:AttributeError: 'str' object has no attribute 'name'
求大神告知这是怎么回事,另外问下,为什么同包下import 会有红色下划线,不胜感谢!!!!
我用的是pycharm
q.a.uu('www')
先定义对象,然后才可以调用
importqq.Test1.uu('www')
这样调用输出的是
q.Test1.uu()
Traceback(mostrecentcalllast):
File"",line1,in
TypeError:uu()missing1requiredpositionalargument:'self'
importqq.a.uu()
输出就对了
因为你这个uu是method,你先要实例化,a=Test1('sss'),所以a就是一个实例,要用q.a.uu()
如果Test1.uu()直接调用,它必须声明是staticmethod
鼠标移到红线,看提示。可能是命名不规范,叫个q比较少,其实不影响使用
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。