开发者社区> 问答> 正文

python对象未初始化的属性为什么也能设置

class Student(object):
    def __init__(self, name):
        self.name = name

s = Student('Bob')
s.b= 90
print(s.name)
print(s.b)

运行结果:

Bob
90

为什么属性b可以设置值呢

展开
收起
水果黄瓜 2021-10-24 10:39:29 1125 0
2 条回答
写回答
取消 提交回答
  • 这个是Python支持的,因为Python是动态医院,如果你想不设置其他属性,那么可以通过__slots__限制

    class jb(object):
        __slots__ = ("a","b")
    
    2021-10-25 22:59:47
    赞同 展开评论 打赏
  • 这是语言特性,就像强类型语言必须声明变量类型一样

    2021-10-24 17:37:28
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载