成都9班-何加云 发表于 2021-11-21 20:59:29

类与调用 类的三大特性

本帖最后由 成都9班-何加云 于 2021-11-21 21:10 编辑

python中的模块应该包含:函数,常量,变量 ,类。1.类:描述具有相同属性和方法的对象的集合。类是对象的抽象和归纳。2.对象:通过类所创建的实体就是对象,对象是类的实例。3.实例化:根据类创建对象的过程,就叫做实例化。4.方法:一般函数写在类的外面,叫函数。写在类的里面叫做方法。5.类变量:整个类所拥有的属性。6.实例变量:用来修饰实例本身。实例就是对象,对象就是实例。7.把变量理解为属性,把方法理解为行为。8.@符号:叫做装饰器。作用:用来不改变函数本身的情况,添加上其他的功能。
创建一个类:classPeople(object):    #使用class 作为关键字,类名需要首字母大写,新式类    head=1                #这个是类变量    def__init__(self,name,age):#构造函数,用来给实例或者对象添加属性。私有的      self.name=name    #self.name 实例变量,self代表实例本身      self.__age=age    #私有实例变量,不能够在类的外部使用    deffunc1(self):       #在类里面,如果不修改他的属性,那么他默认为实例方法      print(self.name+self.age+"岁可以举重100kg")    @classmethoddeffunc2(cls):      #这个叫做类方法,代表整个人类可以做的事情。       print("我可以跑步")@staticmethod    deffunc3():           #这个叫做静态方法 ,理解为类方法。没有cls 来表示。      print("我是一个静态方法")    def__func4(self):   #双下划线开头代表私有方法,只能够在类的内部使用      print("这个是一个私有方法")    deffunc5(self):       #创建一个实例方法,return私有方法,然后在外部调用这个方法,就会得到私有方法        return self.__func4()    deffunc6(self):   #创建一个实例方法,return私有变量,然后类的外部调用这个方法,就会得到私有变量      return self.__agep=People("小王","18")   #创建一个对象1.调用方法p.func1()                   #对象调用实例方法People.func1()             #类调用实例方法,报错People.func1(p)         #类派出一个对象去调用实例方法p.func2()                   #对象调用类方法People.func2()             #类调用类方法p.func3()                   #对象调用静态方法People.func3()             #类调用静态方法p.fun4()                   #类外部,调用私有方法,会报错People.func4()             #类外部,调用私有方法,会报错p.func5()                    #如果在类的外部调用私有方法,需要在类中进行封装,返回2.调用变量print(p.name)               #对象调用实例变量print(p.func6())            #func6中有返回的私有变量print(People.name)      #类调用实例变量,报错print(p.head)               #对象调用类变量print(People.head)      #类调用类变量
类的特性:1.封装:classPeople:                 #经典类,默认继承object    def __init__(self):                pass    def set_name(self,name): #创建一个实例方法,并且将获取到的值赋值给实例变量         self.name=name    defget_name(self):    #谁调用这个方法,我就把这个实例变量返回给他         return self.namep=People()p.set_name("小明")print(p.get_name())
2.继承当自己的类中方法不够使用了,可以去继承别的类。被继承的叫做父类,继承的叫做子类。子类对象可以调用父类的方法,父类对象不能够调用子类的方法。可以同时继承多个类,也可以继承之后再进行继承。第一种:同时继承多个类:class   Father(object):       #object 不是形式参数,是万物之源    def__init__(self):      pass    defrich(self):      print("我是一个富有的人")    defdrink(self):      print("我是一个喜欢喝酒的人")classMother():    defbeautiful(self):      print("我是一个漂亮的人")
classSon(Father,Mother):    def__init__(self):      pass    defyoung(self):      print("我是一个年轻的人")    defstrong(self):      print("我是一个强壮的人")f=Father()      #创建父类对象s=Son()          #创建子类对象s.rich()           #子类对象可以调用父类方法s.beautiful()f.young()         #父类对象不能够调用子类方法
第二种:继承之后再继承:class   Grandfather(object):       #object 不是形式参数,是万物之源    def__init__(self):      pass    defrich(self):      print("我是一个富有的人")    defdrink(self):      print("我是一个喜欢喝酒的人")classFather(Grandfather):    defbeautiful(self):      print("我是一个漂亮的人")classSon(Father):    def__init__(self):      pass    defyoung(self):      print("我是一个年轻的人")    defstrong(self):      print("我是一个强壮的人")s=Son()f=Father()s.rich()           #孙子类对象,调用爷爷类方法f.rich()           #父亲类对象可以调用爷爷类方法s.drink()       #孙子类对象,调用爷爷类方法s.beautiful()    #孙子类对象,调用父亲类方法s.strong()      #孙子类对象,调用孙子类方法
3.多态: 当继承的类里面的方法,不满足子类的要求了,子类可以进行方法的重写。如果调用重写的方法,会执行重写之后的方法。classAnimal(object):    defsay(self):      print("欢迎来到动物世界")classDog(Animal):    deftalk(self):      print("汪汪")    defsay(self):      print("hello")
a=Animal()d=Dog()g=Grandfather()a.talk()a.say()#如果在子类中,没有对say方法进行重写,那么会调用父类中的这个say的方法a.say()   #如果在子类中,对say方法进行了重写,那么会调用重写之后的方法
a=Animal()d=Dog()   #Dog类继承与Animal类g=Grandfather()
判断对象是否属于这个类print(isinstance(a,Animal))           #Trueprint(isinstance(d,Animal))               #Trueprint(isinstance(g,Animal))              #False
判断第一个参数的类,是否继承于第二个参数的类print(issubclass(Dog,Animal))            #Trueprint(issubclass(Grandfather,Animal)) #False
页: [1]
查看完整版本: 类与调用 类的三大特性