python---类

1、类animal = Animal(''),animal叫对象,类里的变量叫属性,类里定义的叫方法,类外面用def定义的叫函数。只是类里定义的方法第一个参数是self

  每个对象的属性,以及类的属性(Animal.voice)是单独存储的

class Animal(object):
    voice = ''
    def __init__(self,voice):  #__init__为python内置函数
        Animal.voice = voice  #直接对类的属性进行修改

    def cat(self):
        pass

print(Animal.voice)
animal = Animal('') #Animal为一个类型,animal为用类型创建出来的对象
print(Animal.voice)
animal2 = Animal('')
print(animal.voice)
print(animal2.voice)
print(Animal.voice)
控制台输出:
      咩
      汪
      喵
      喵
      喵

2、由1所知Animal.voice = voice为直接对类的属性进行修改,那么如何只对对象的属性进行修改,而不影响其它创建的对象呢

class Animal(object):
    voice = ''
    def __init__(self,voice):  
        self.voice = voice  #self.voice代表实例化后的对象

    def cat(self):
        pass

print(Animal.voice)
animal = Animal('')
print(Animal.voice)
animal2 = Animal('')
print(animal.voice)  #self.voice这种的,当发现self(对象)里面没有这种能力的时候,才会到Animal这个类型里去找;如果Animal这个类里没有,会到Animal的基类内找
print(animal2.voice)
print(Animal.voice)

控制台输出:
      咩
      咩
      汪
      喵
      咩

3、

4、

原文地址:https://www.cnblogs.com/hzgq/p/11791022.html