如何在 Python 中为 类 添加额外的属性?
How do I add an extra attribute for classes in Python?
我正在 Python 中使用 类,不明白如何添加额外的 'attributes'。例如我在下面提出的简单代码:
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() 函数中定义,当创建 class 的实例时,它会自动 运行。要添加物种属性,您可以在 init 函数中添加它。
def __init__(self, name, age, species):
self.name = name
self.age = age
self.species = species
给你。它与设置名称或年龄的语法相同。此外,请注意原始 post 中的缩进 - 方法(即 def birdsit、def birdfly)都需要比 class.
多缩进一次
class Bird():
def __init__(self, name, age, 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()
我正在 Python 中使用 类,不明白如何添加额外的 'attributes'。例如我在下面提出的简单代码:
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() 函数中定义,当创建 class 的实例时,它会自动 运行。要添加物种属性,您可以在 init 函数中添加它。
def __init__(self, name, age, species):
self.name = name
self.age = age
self.species = species
给你。它与设置名称或年龄的语法相同。此外,请注意原始 post 中的缩进 - 方法(即 def birdsit、def birdfly)都需要比 class.
多缩进一次class Bird():
def __init__(self, name, age, 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()