简体   繁体   English

在Python 3中遇到TypeError问题

[英]Having trouble with a TypeError in Python 3

Hey all I am new to programming and I need help with a problem. 嘿,我是编程新手,我需要解决问题。 In this problem we are asked to create a super class "Person" and a sub class Instructor and Student 在此问题中,我们被要求创建一个超类“ Person”和一个子类“ Instructor and Student”

The main problem I am having is that I have a method name that needs to retrive the name of the Person and in the console x.name works but the required x.name() does not and gives me a TypeError: 'str' object is not callable 我遇到的主要问题是,我有一个方法名称需要检索Person的名称,并且在控制台中x.name可以工作,但所需的x.name()却没有,并且给了我TypeError:'str'对象不可通话

from datetime import date

class Person:

    def __init__(self, name, year):
        self.name = str(name)
        self.year = year
    def age(self):
        return date.today().year- self.year
    def name(self):
        return (self.name)

class Instructor(Person):

    def __init__(self, name, age, degree):
        Person.__init__(self, name, age)
    def degree(self):
        return (self.degree)

class Student(Person):

    def __init__(self, name, age, major = "major"):
        Person.__init__(self, name, age)
    def major(self):
        return (self.major)

Thank you for your help 谢谢您的帮助

The name name conflicts. 名称name冲突。 It's used for method and attribute. 用于方法和属性。

Use different names for them. 为它们使用不同的名称。

class Person:

    def __init__(self, name, year):
        self.name = str(name)  # <----
        self.year = year

    def age(self):
        return date.today().year- self.year

    def name(self):  # <---- same name is used.
        return (self.name)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM