如何解决如何为 Python 中的类添加额外的属性?
我正在玩 Python 中的类,但不明白如何添加额外的“属性”。例如我在下面提出的简单代码:
class Bird():
def __init__(self,name,age):
self.name = name
self.age=age
def birdsit(self):
print(self.name + ' is a bird that is sitting')
def birdfly(self):
print(self.name + ' is a bird that is flying')
def birdwalk(self):
print(self.name + ' is a bird that is walking')
myBird=Bird('Blue',4)
print(myBird.name)
myBird.birdsit()
myBird.birdfly()
myBird.birdwalk()
我试图简单地添加一个属性,例如。鸟的类型或性别。我正在自学,我使用的教科书是如此混乱和不堪重负,我真的找不到明确的解释。
解决方法
您到底是要添加吗?您已经知道如何创建一个新的数据属性:简单地分配给它。例如,如果您想为您的鸟添加 movement
属性,请执行以下操作:
def birdsit(self):
self.movement = "sit"
print(self.name + ' is a bird that is sitting')
def birdfly(self):
self.movement = "fly"
print(self.name + ' is a bird that is flying')
def birdwalk(self):
self.movement = "walk"
print(self.name + ' is a bird that is walking')
如果该属性不存在,则会在您第一次点击这些分配中的一个时创建它。如果它已经存在,则赋值只是改变它的值。
在这方面,它就像一个普通的 Python 变量。
,属性可以在 init() 函数中定义,该函数在创建类的实例时自动运行。要添加物种属性,您可以将其添加到 init 函数中。
def __init__(self,name,age,species):
self.name = name
self.age = age
self.species = species
,
给你。这与设置名称或年龄的语法相同。另外,请注意原始帖子中的缩进 - 方法(即 def Birdsit、def Birdfly)都需要比类缩进一次。
class Bird():
def __init__(self,type,gender):
self.name = name
self.age = age
self.type = type
self.gender= gender
def birdsit(self):
print(self.name + ' is a bird that is sitting')
def birdfly(self):
print(self.name + ' is a bird that is flying')
def birdwalk(self):
print(self.name + ' is a bird that is walking')
myBird = Bird('Blue',4,'swallow','do birds have genders?')
print(myBird.name,myBird.gender,myBird.type)
myBird.birdsit()
myBird.birdfly()
myBird.birdwalk()