开发者社区> 问答> 正文

python import 一个包含类的py文件报错 ?报错

先看一个很简单的程序(写在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

展开
收起
爱吃鱼的程序员 2020-06-23 00:12:04 447 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    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比较少,其实不影响使用

    2020-06-23 00:12:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载