python基础-类

python基础-类,第1张

概述#举例说明如何定义类和实例化所定义的类#定义类classPeople(object):name="默认"age="默认"def__init__(self,name,age):self.name=nameself.age=agedefpprint(self):print("名字是:%s"%(self.name))
#举例说明如何定义类和实例化所定义的类#定义类class People(object):     name = "默认"     age = "默认"     def __init__(self,name,age):         self.name = name         self.age = age     def pprint(self):         print("名字是:%s"%(self.name))         print("年龄是:%s"%self.age)     def diaoyongpprint(self):         self.pprint()     def diaoyongclass(self):         print ("调用类方法")         self.Classdiaoyongpprint()     @classmethod     def Classdiaoyongpprint(cls):         print ("类方法调用对象方法")         cls.pprint(cls)     def classp(self):         print ("hahaha")#实例化person = People('zzz','18')person.pprint()# 定义类方法时self参数名可以被命名成其他名字吗?#可以改变,不管是什么名字都代表当前对象本身class Change(object):    def __init__(you, name, age):        you.name = name        you.age = age    def pprint(you):        print("名字是:%s" % (you.name))        print("年龄是:%s" % you.age)change = Change("change","0")change.pprint()# 如何判断一个对象属于哪个类class Animal(object):    def __init__(self, name, age):        self.name = name        self.age = age    def pprint(self):        print("名字是:%s" % (self.name))        print("年龄是:%s" % self.age)cat = Animal('cat','2')cat.pprint()print (type(person))print (type(cat))# 如何判断两个变量指的是同一对象#答:直接判断两者相不相等即可a = catb = catprint (a==b)b = personprint (a==b)a.pprint()b.pprint()# 举例说明如何定义类属性class A:    name = "python课程-属性"a = Aprint(a.name)# 可以为对象直接添加新属性吗?#答:可以person.addr = '北京'print (person.addr)# 1. 对象方法可以调用对象方法?#答:可以person.diaoyongpprint()# 2. 对象方法可以调用类方法?#答:可以person.diaoyongclass()# 3. 类方法可以调用对象方法?# #答:可以People.Classdiaoyongpprint()# 4. 定义类方法时必须加特别的装饰器?#答:对,加 @classmethod# 5. 对象方法可以通过类名dot形式访问?#答:可以People.pprint(People)People("aa","45").pprint()# 6. 类方法可以通过对象名dot形式访问?#答:可以People.Classdiaoyongpprint()# 7. 初始时可以通过对象属性方法类属性吗?如果可以其前提条件是什么?#答:不可以# 8. 每个类属性都有一个对应的同名对象属性?#答:对# 9. 单下划线的对象属性表示“私有”成员?#答:“单下划线开头” 的成员变量叫做保护变量,意思是只有类对象和子类对象才能访问到这些变量。# 10. 所有双下划线对象属性都表示“私有”成员#答:“双下划线开头” 的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。# 举例(animal,dog)说明如何定义继承类class Dog(Animal):    def __init__(self,name,age,launch):        # Animal.__init__(self,name,age)        super(Dog, self).__init__(name,age)        self.launch = launch    def pprint(self):        Animal.pprint(self)        print ("食物;%s"%self.launch)# 举例说明super函数的使用# 1. 类方法可以继承?dog = Dog("哈士奇", "2", "肉")# 2. 子类不可以重新定义父类的同名方法?#可以dog.pprint()# 3. 多态是指儿子可以表现父亲的“同名行为”?#答:多态的好处就是,当我们需要传入更多的子类时,我们只需要继承父类的方法就可以了,# 而同名方法既可以不重写(即使用Animal的),也可以重写一个特有的# 举例说明多态的作用#答:多态的好处就是,当我们需要传入更多的子类时,我们只需要继承父类的方法就可以了,# 而同名方法既可以不重写(即使用Animal的),也可以重写一个特有的# 类嵌套举例说明class parent:    def __init__(self):        self.name = 'parent'    def getname(self):        print(self.name)    class child:        def __init__(self):            self.name = 'child'        def getname(self):            print(self.name)child =  parent.child()child.getname()# 通过对象名调用方法举例person.pprint()def add(a,b):    return a+bdef sub(a,b):    return a-bclass AA(object):    x=add(3,4)    y=sub(3,9)    @classmethod   #类方法    def printa(cls):        print(cls.x,cls.y)    @staticmethod  #静态方法    def printb(a,b):        print(a+b)        print(AA.x)    def printc(self,a,b):    #普通方法        print(a+b)a=AA()print(AA.x)AA.printa()AA.printb(6,7)AA.printc(AA,6,8)a.printa()a.printb(6,7)a.printc(6,8) #error# 静态方法可以访问类属性吗?#答:可以# 普通方法可以通过对象调用吗?#答:可以# 静态方法可以通过对象调用吗?#答:可以
总结

以上是内存溢出为你收集整理的python基础-类全部内容,希望文章能够帮你解决python基础-类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存