栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

面向对象编程——类方法的总结

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象编程——类方法的总结

1.类存在的合理性

解决某一类问题,而不是仅仅针对一个问题,可以提高代码的利用率,节省内

2.面向对象的特征

 

封装、继承、多态

3.类的使用

完整的类格式如下:

class Person:
# 定义属性
    def __init__(self,name,age):
        self.name = name
        self.__age = age
    def __str__(self):
        a=0
        return a
    def __del__(self):
        print("执行结束")
    def __new__(cls, *args, **kwargs):
        super().__new__(cls)
# 定于方法
    def func(self):
        print("执行")

私有属性:形如__shuxing = name,原则上不可修改

私有方法:形如def __mathod(self):,原则上对象不可使用

在python中没有绝对的私有,可以通过get__shuxing获取私有方法,set__shuxing修改私有属性

具体的操作如下:

class Person:
    def __init__(self,name):
        self.name = name
        self.__age = 20
    # 获取私有方法
    def __func1(self):
        a = self.__age
        print(a)
    def get__func1(self):
        self.__func1()
    # 修改私有方法
    def set__cs(self,vb):
        self.__age = vb
        print(self.__age)
sa = Person("s")
sa.set__cs(19)
sa.__func1() # 访问不到
sa.get__func1()

 

 

4.封装 私有性特征是封装的一种

封装:指的是隐藏对象的属性和具体实现细节,仅对外提供公共的访问方式。

好处:将变化隔离、便于使用、提高重用性、提高安全性

封装原则:将不需要对外提供的内容都隐藏起来、把属性都隐藏,提供公共方法对其访问。      

5.类的继承性

基类(原类):所有的类都继承它;object的子类,统称为派生类

 1.子类重写父类
class Father:
    def eat(self):
        print("肉类")
class Son(Father):
    def eat(self):
        print("青菜")
xm = Son()
xm.eat()

输出:青菜 

子类的方法与父类方法相同时就相当于重写了父类的方法,得到输出是子类方法中的输出 

连续继承的传递性 

class Grandfather:
    def eat1(self):
        print("鸡蛋")
class Father(Grandfather):
    def eat2(self):
        print("肉类")
class Son(Father):
    def eat3(self):
        print("青菜")
xm = Son()
xm.eat1()

输出是:鸡蛋 

 要求:子类可以继承父类所有的方法和属性(父类和子类方法不相同)

 当父类和子类方法相同时该如何使用父类方法呢?

第一种是super().方法 super().get__tool()

另一种是父类名称.方法 Father.get__tool(self)

区别:方法一括号内没有self,方法二必须要有;方法一只能访问上一级方法,方法二可以访问任意级父类的方法

实列:

class Grandfather:
    def eat(self):
        print("鸡蛋")
class Father(Grandfather):
    def eat(self):
        print("肉类")
class Son(Father):
    def eat(self):
        print("青菜")
        super().eat()
        Grandfather.eat(self)
xm = Son()
xm.eat()

输出结果为:

青菜
肉类
鸡蛋
2.父类私有权限

对于父类中的私有方法和属性,子类可以通过公共方法访问,即在父类中定义set,get方法

获取父类私有方法也是有两种,同上

class Grandfather:
    def eat(self):
        print("鸡蛋")
class Father(Grandfather):
    def __init__(self):
        self.__age = 45
    def __tool(self):
        print("挖机")
    def get__tool(self):
        self.__tool()
    def eat(self):
        print("肉类")
class Son(Father):
    def eat(self):
        print("青菜")
        super().get__tool()
        Father.get__tool(self)
xm = Son()
xm.eat()

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号