手记

Python 进阶——类(class)

简单创建类:class 类名(object): pass    #object,即继承最原始的对象,每个类都是object的子类,pass表示完结,可写可不写

改写初始化函数:#双下划线+init+双下划线  为初始化函数名,以“self”为第一个固定参数,表示初始化时的实例,初始化可更新实例参数

class Animal(object):                                                                class Animal(object):

    location = 'China'                                                                      location = 'China'

    __color = 'red'                                                                            __color = 'red'

    def __init__(self,变量1,变量2):                                                def __init__(self, name, age):

        self.变量1 = 变量1                                                                        self.name = name

        self.变量2 =变量2                                                                         self.age = age

    def get_color(self):                                                                    def get_color(self):        

        return self.__color                                                                       return self.__color

    def get_name(self):                                                                   def get_name(self):

         return self.name                                                                        return self.name

    @classmethod                                                                        @classmethod

    def set_location(cls, location ):                                               def set_location(cls, location ):

         cls.location= location                                                               cls.location= location


实例属性:#类似public属性,每初始化一个实例,则都有该实例的专有的属性值,通过实例访问,dog.name

类属性:#类专有的属性,有且只有一个值,所有的实例共有的值,所有的实例的类属性都相等,可通过类名称进行访问,Animal.location

实例私有属性(以双下划线开头的属性#__pri):#类似private属性,无法直接通过实例或者类进行访问的属性,只有类自身函数可调用该私有属性,可以通过实例方法(不能用类方法获取)去获取的属性, __color,get_color(self)

实例方法:#类的方法,可通过实例进行引用,可获取类属性、实例属性、实例私有属性,get_color(self), get_name(self)

类方法:#属于类的方法,可直接通过类名称进行调用,类方法只能处理类属性。必须用@classmethod标识,set_location(cls, location)

实例调用:
dog = Animal('dog',10)

print(dog.name)  #实例属性调用,输出——》 dog

print(dog.getName())   #实例方法调用输出——》 dog

print(Animal.location)  #类属性调用输出——》China

print(dog.get_color())   #实例方法调用输出——》red

Animal.set_location('Amarica')  #调用类方法,改变类属性

print(Animal.location) #类属性输出——》Amarica


继承:创建class类时,继承括号内函数


class Newanimal(父类名称):

      def __init__(self,变量1,变量2,变量A):

             super(父类名称,变量1,变量2) #初始化父类带过来的变量

             self.变量A = 变量A















1人推荐
随时随地看视频
慕课网APP