You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 13:24:03