没有合适的资源?快使用搜索试试~ 我知道了~
Python面向对象编程:私有成员,保护成员和普通成员;抽象基类与继承
1 下载量 180 浏览量
2020-12-21
19:21:41
上传
评论
收藏 43KB PDF 举报
温馨提示
试读
2页
一、基本概念 私有成员变量: __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。 保护成员变量: _foo:以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * 普通成员变量:foo 类外可访问。 私有方法:__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用 普通方法:开头无下划线 抽象基类:该类的方法均为抽象方法,不能被实例化。子类需实现所有抽象方法,不然子类也是抽象类 方法重写:如果从父类继承的
资源详情
资源评论
资源推荐
Python面向对象编程:私有成员,保护成员和普通成员;抽象面向对象编程:私有成员,保护成员和普通成员;抽象
基类与继承基类与继承
一、基本概念一、基本概念
私有成员变量私有成员变量: __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
保护成员变量:保护成员变量: _foo:以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能
用于 from module import *
普通成员变量:普通成员变量:foo 类外可访问。
私有方法:私有方法:__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用
普通方法:普通方法:开头无下划线
抽象基类抽象基类:该类的方法均为抽象方法,不能被实例化。子类需实现所有抽象方法,不然子类也是抽象类
方法重写:方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方
法的重写。
方法重载:方法重载:重载(overload) 是在一个类里面,方法名字相同,而参数不同。
魔法方法:魔法方法:Python 的对象天生拥有一些神奇的方法,他们总被双下划线锁包围,他们是面向对象的python的一切.
下面是一个例子:
from abc import ABC, abstractmethod
import math
# 抽象基类
class Shape(ABC):
@abstractmethod
def getArea():pass #定义获取面积的抽象方法
class Triangle(Shape):
__a = 10 #私有成员变量 __ 可理解成 private
_b = 10.0 #保护成员变量 _ 可理解成 protected
c = 10 #普通成员变量 可理解成 public
# 构造器或称构造方法
def __init__(self, a=0, b=0, c=0):
if not self.__isLegal(a, b, c):
raise Exception("illegal")
self.__a = a
self._b = b
self.c = c
# 析构器或称析构方法
def __del__(self):
class_name = self.__class__.__name__
print(class_name, "销毁")
def getArea(self):
return math.sqrt((self.__a+self._b+self.c)*(self.__a+self._b-self.c)*\
(self.__a+self.c-self._b)*(self._b+self.c-self.__a))/4
# 私有方法, 无法类外访问
def __isLegal(self, a, b, c):
if a+b>c and a+c>b and b+c>a:
return True
else:
return False
# 魔法方法
def __str__(self):
return "triangle"
if __name__ == '__main__':
triangle = Triangle(3,4,5)
print(triangle.__a)
# 报错,不能类外访问
print(triangle._b)
# 可以类外访问
# >>4
print(triangle.c)
# >>5
weixin_38528086
- 粉丝: 2
- 资源: 921
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0