如何为Python中的类添加额外的attribute(属性)
你需要给Bird类的构造方法__init__新增对应参数,再把参数赋值为实例属性即可,具体修改方式如下:
class Bird(): # 新增bird_type、gender两个参数,也可以给参数设置默认值避免实例化时漏传 def __init__(self, name, age, bird_type, gender): self.name = name self.age = age self.bird_type = bird_type # 鸟类种类属性 self.gender = gender # 性别属性 def birdsit(self): print(self.name + ' is a ' + self.bird_type + ' that is sitting') def birdfly(self): print(self.name + ' is a bird that is flying') def birdwalk(self): print(self.name + ' is a ' + self.gender + ' bird that is walking') # 实例化时传入对应的种类、性别参数即可 myBird=Bird('Blue',4, 'parrot', 'female') print(myBird.name) print(myBird.bird_type) # 可以直接调用新增的属性 print(myBird.gender) myBird.birdsit() myBird.birdfly() myBird.birdwalk()
注意事项
- 命名的时候尽量不要直接用
type作为属性名,type是Python的内置关键字,重名容易引发不必要的异常。 - 也可以给参数设置默认值,比如
def __init__(self, name, age, bird_type='unknown', gender='unknown'),这样实例化时如果不传这两个参数,会默认填充unknown,不会报错。 - 如果是已经实例化的对象,也可以临时追加属性,比如直接写
myBird.color = 'yellow',但这种方式只有当前这个实例有color属性,其他Bird类的实例不会自动拥有,所以通用属性还是建议统一写在__init__里。
内容的提问来源于stack exchange,提问作者White Shadow
相关产品推荐
相关产品推荐

