CSDN_Black
csdn_black
采纳率38.7%
2018-04-12 02:35

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

10
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • A1311817771 Light紫星 3年前

    q.a.uu('www')

    点赞 1 评论 复制链接分享
  • qq_38692254 foreverbonfy 3年前
    import q
    
    q.Test1.uu('www')
    

    这样调用 输出的是

    q.Test1.uu()
    Traceback (most recent call last):
    File "", line 1, in
    TypeError: uu() missing 1 required positional argument: 'self'

    import q
    q.a.uu()
    

    输出就对了

    因为你这个 uu 是method,你先要实例化, a=Test1('sss') , 所以 a就是一个实例,要用 q.a.uu()

    如果 Test1.uu() 直接调用,它必须声明是 staticmethod

    点赞 1 评论 复制链接分享
  • u010795146 看你吃成啥样 3年前

    先定义对象,然后才可以调用

    点赞 1 评论 复制链接分享
  • qq_38692254 foreverbonfy 3年前

    鼠标移到红线,看提示。 可能是命名不规范,叫个 q 比较少, 其实不影响使用

    点赞 评论 复制链接分享

相关推荐