关于面向对象的属性访问

```
class Car:
car_address = '河南省郑州市' #类属性

def __init__(self,color):
self.color = color #实例属性

#实例方法 只能用实例对象访问
def move(self):
print('move....')

#类方法,可以使用类对象和实例对象调用
@classmethod
def start(cls):
print('类方法start....')

#静态方法,可以用类对象和实例对象调用
@staticmethod
def stop():
print('静态方法stop...')
```
类属性在类里面,父级就是类本身,可以被类和实例对象调用,实例对象可以对类属性进行重写,但不会影响类属性本身,类调用时一样可以使用原属性,类可以修改类属性,修改之后实例对象调用的就是修改以后的值

实例方法是类下面默认的函数类型 ,其中__init__函数下面的变量都是实例属性,实例属性和实例方法只能被类进行调用

类方法需要用@classmethod修饰,可以被类,实例对象调用

静态属性需要用@staticmethod修饰,可以被类和实例对象调用,但都不能对其进行修改


```
class A:
str0 = 'hi,'

def __init__(self):
self.__str1 = 'hello'
self._str2 = 'world'

def f1(self):
print(self.__str1)


mc = A()

print(mc.str0)
print(mc._A__str1)
print(mc._str2)
```
以上是关于类属性,共享属性,私有属性的访问测试,值得注意的是,双下划线的str1属性访问时有两种方式(1、在类的内部写一个方法,调用方法访问;2、即上面的方法)

猜你喜欢

转载自www.cnblogs.com/Zhao01/p/10082840.html
今日推荐