提示信息

Python类属性和实例属性

静待荼靡 已关注

类属性是定义在类中的变量,被所有实例共享。它在所有实例中都具有相同的值。

实例属性是定义在实例中的变量,每个实例都可以有自己的值。实例属性具有优先级,如果实例属性和类属性重名,实例属性会覆盖类属性。

以下是一个使用类属性和实例属性的示例代码:

  1. class Circle:
  2. # 类属性
  3. pi = 3.14
  4. def __init__(self, radius):
  5. # 实例属性
  6. self.radius = radius
  7. def calculate_area(self):
  8. # 计算圆的面积
  9. return self.pi * self.radius ** 2
  10. # 创建两个实例
  11. circle1 = Circle(5)
  12. circle2 = Circle(10)
  13. # 访问类属性
  14. print(circle1.pi) # 输出 3.14
  15. print(circle2.pi) # 输出 3.14
  16. # 访问实例属性
  17. print(circle1.radius) # 输出 5
  18. print(circle2.radius) # 输出 10
  19. # 访问实例方法
  20. print(circle1.calculate_area()) # 输出 78.5
  21. print(circle2.calculate_area()) # 输出 314.0
  22. # 修改实例属性
  23. circle1.radius = 7
  24. print(circle1.radius) # 输出 7
  25. # 实例属性会覆盖同名的类属性
  26. circle1.pi = 3.14159
  27. print(circle1.pi) # 输出 3.14159
  28. print(circle2.pi) # 输出 3.14

在上面的示例中,pi 是一个类属性,被所有Circle实例共享。radius 是一个实例属性,每个实例都有自己的值。每个实例都可以访问类属性和实例属性,并且可以修改实例属性的值。当实例属性与类属性重名时,实例属性会覆盖类属性的值。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
静待荼靡 关注 已关注

最近一次登录:2023-10-09 15:57:53   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图