我有3个类(City
、Neighborhood
和Block
)
以下是City
类的定义:
class City:
def __init__(self, id_city, name_city):
self.__id = id_city
self.__name = name_city
Neighborhood
的定义:
class Neighborhood(City):
def __init__(self, id_neighborhood, name_neighborhood, number_block, *city_args, **kwargs):
City.__init__(self, *city_args, **kwargs)
self.__id = id_neighborhood
self.__name = name_neighborhood
self.__number = number_block
Block
的定义:
class Block(Neighborhood):
def __init__(self, id_block, number_block, number_flats, *neighborhood_args, **kwargs):
Neighborhood.__init__(*neighborhood_args, **kwargs)
self.__id = id_block
self.__number_b = number_block
self.__number_f = number_flats
然后我宣布:
city = City(5, "New York")
neighborhood = Neighborhood(1, "Brooklyn", 500, 5, "New York")
block = Block(11, 2, 20, 1, "Brooklyn", 500, 5, "New York")
并得到以下错误:
AttributeError: 'int' object has no attribute '_City__id'
您忘记在
Block.__init__()
实现中传递self
:所以传入的第一个参数是一个整数。现在
Neighbourhood.__init__()
将self
绑定到1
,您将得到错误。只需添加self
:相关问题 更多 >
编程相关推荐