python 的类里面的函数使用了类的属性怎么互不影响
时间: 2024-05-13 18:17:56 浏览: 9
在Python中,类的属性和实例的属性是不同的。类属性在类的定义中直接定义,而实例属性是在实例化对象时定义的。因此,如果在类的方法中使用类属性,它不会影响实例属性的值。例如:
```
class MyClass:
class_attr = 0
def __init__(self, instance_attr):
self.instance_attr = instance_attr
def method(self):
MyClass.class_attr += 1
self.instance_attr += 1
print("Class attribute:", MyClass.class_attr)
print("Instance attribute:", self.instance_attr)
obj1 = MyClass(10)
obj2 = MyClass(20)
obj1.method()
# Output: Class attribute: 1, Instance attribute: 11
obj2.method()
# Output: Class attribute: 2, Instance attribute: 21
obj1.method()
# Output: Class attribute: 3, Instance attribute: 12
```
在上面的示例中,`class_attr`是类属性,而`instance_attr`是实例属性。在`method()`方法中,我们修改了两个属性的值。请注意,每次调用`method()`方法时,类属性会增加1,但实例属性仅在特定实例中增加1,不会影响其他实例。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)