美文网首页
python面向对象编程

python面向对象编程

作者: Sl0wDive | 来源:发表于2021-03-04 17:38 被阅读0次
class Poo():
    
    id = '2191441'  
    
    def __init__(self, name,  nation):
        self.name = name   
        self.__nation = nation
        
    def out(self):
        print(self.name, self.__class__.id,self.__nation)
        
    def __in(self):
        print(self.name)  
        
    @classmethod    #修饰符
    def outt(cls):  #cls为class的简写
        print(cls.id)
        
    @property
    def nation(self):
        print(self.__nation)
           
class Zoo(Poo):
    def __init__(self, name, nation, score):
        Poo.__init__(self, name, nation)  #继承时离不开这句  继承父类的属性
        self.score = score                  # 子类中新加的属性
        
    def oout(self):
        #Poo.out(self)
        super().out()
        print(self.score)
以上面的代码为例:

类:用来描述具有相同 属性 和 方法 对象的集合。

属性: __init__中定义的变量

方法: 类中 定义的 函数 

类实例化: 创建对象 即 (obj = Poo.out('a',23,'male'))

类变量: 定义在类中的 不在属性中定义的  例如 id  (访问: POO.id)

实例变量:  定义在属性中的 类实例化时进行赋值  例如 name (访问:obj = Poo.out('a',23,'male') >> obj.name)

类方法: 联想 类变量和实例变量的关系, 类方法就是无需实例化调用的方法 直接类名+类方法名(Poo.outt()).  类方法不使用self参数  + @classmethod修饰符

私有属性:例如__init__定义的__nation  这样的直接 obj.__nation访问不到, 但可以通过out方法访问  因为私有属性可以在类中调用 故不影响out方法的输出

私有方法:例如 def __in(self) 该方法直接在类中使用 不能 Poo.__in()进行调用

封装: 在面向对象的编程中,通常情况下很少让外部类直接访问类内部的属性和方法,而是向外部类提供一些按钮,对其内部的成员进行访问,以保证程序的安全性

私有属性伪装为属性: 对于__nation 想让它假装作 正常属性的样子 可以通过obj.nation调用 就通过 @property 修饰符 和 nation函数完成

继承: 子类从父类那里获得其已有的属性与方法的现象

继承(属性继承): 通过 Zoo(Poo) 这种方法  属性部分 需要有 Poo.__init__(self, name, age, sex)

继承(方法继承): 在子类的oout方法中 通过Poo.out(self) 或者 super().out() 进行 父类 方法的继承 super().out()不加self

多态: https://www.cnblogs.com/Marcki/p/10111943.html

相关文章

网友评论

      本文标题:python面向对象编程

      本文链接:https://www.haomeiwen.com/subject/zomkqltx.html