AttributeError:“ str”对象在定义类和调用它时没有属性“ name”

时间:2018-09-17 03:48:15

标签: attributeerror

MyIntroduction类:

def __init__(self, name ,age,education,masters,interestArea):
  self.name = name
  self.age = age
  self.education = education
  self.masters = masters
  self.interestArea = interestArea

def displayInformation(self):
    print({'name': self.name, 'a': self.age, 'e': self.education, 'M': self.masters, 'IA': self.InterestArea })
    emp = { 'emp1': MyIntroduction.__init__("Terex", "92", "BE", "MA", "Sports")}
    emp1.displayInformation(self)

2 个答案:

答案 0 :(得分:0)

好,这就是我要做的。

尝试一下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# =============================================================================
"""Doc PlaceHolder."""
# =============================================================================


class MyIntroduction():
    """Doc PlaceHolder."""

    def __init__(self):
        """Doc PlaceHolder."""
        self.name = ""
        self.age = ""
        self.education = ""
        self.masters = ""
        self.interestarea = ""

    def set_info(self, name, age, education, masters, interestarea):
        """Doc PlaceHolder."""
        self.name = name
        self.age = age
        self.education = education
        self.masters = masters
        self.interestarea = interestarea

    def displayinformation(self):
        """Doc PlaceHolder."""
        a = {'name': self.name,
             'a': self.age,
             'e': self.education,
             'M': self.masters,
             'IA': self.interestarea
             }
        print(a)

a = MyIntroduction()
a.set_info('Jay', 453, 'SelfTaught', 'Making Stuff Up', 'Space Captain')
a.displayinformation()

注意,代码的结尾。

使用How to plot a vector field in Julia?设置默认值,然后创建一种设置或更新方法。然后,为了便于阅读,我创建了一个单独的方法来设置/更新您的self.variables,然后将字典拆分为一个变量,然后打印出来。

结果:

python3 testy.py 
{'name': 'Jay', 'a': 453, 'e': 'SelfTaught', 'M': 'Making Stuff Up', 'IA': 'Space Captain'}

有用的提示:尝试使用带有语法高亮显示的文本编辑器,因为这将帮助您学习并记住格式化格式,从而最大限度地减少这些错误=)

我仍在学习自己,毫无疑问,您会得到更多有趣的答案,尽管如此,这是我对您的代码示例所做的。

答案 1 :(得分:0)

您有几个错误,但是没有必要像@JayRizzo那样去做:

displayInformation方法中有一个错字:InterestArea应该是interestArea-注意小写的首字母i。除此之外,该类的定义还可以。

主要问题是该类的使用:您应该使用它的方式是实例化该类(即定义该类型的对象):

emp =  MyIntroduction("Terex", "92", "BE", "MA", "Sports")

,然后让对象调用displayInformation()方法以显示自身:

emp.displayInformation()

请注意,__init__不应在实例化时显式显示,self不应在类外显式显示:当对象调用类方法(例如emp.displayInformation()时,该对象为self就是在类定义中所引用的:调用类方法的对象。