python私有变量和方法
python私有变量和方法
1,私有变量和私有方法无法被继承
2,私有变量和私有方法可以放在普通方法(实例方法)里面被子类继承
class A:
def __init__(self, name):
self.name = name
self.__age = 10
def __eat(self):
print('吃饭')
def sleeping(self):
print(self.name)
self.__eat()
print('睡觉')
print(str(self.__age) + " 岁了") class B(A):
pass obj = B("小明")
obj.sleeping() 输出:
小明
吃饭
睡觉
10 岁了
3,私有变量和私有方法可以放在普通方法(实例方法)里面被子类继承,但是子类无法重写覆盖
也就是说:在继承中,父类如果不想让子类覆盖自己的方法,可以将方法定义为私有方法
class A:
def fa(self): #在定义时就变形为_A__fa
print('from A')
def test(self):
self.fa() #只会与自己所在的类为准,即调用_A__fa class B(A):
def fa(self):
print('from B') b=B()
b.test() 输出:::::::
from B
class A:
def __fa(self): #在定义时就变形为_A__fa
print('from A')
def test(self):
self.__fa() #只会与自己所在的类为准,即调用_A__fa class B(A):
def __fa(self):
print('from B') b=B()
b.test() 输出:::::::::
from A
python私有变量和方法的更多相关文章
- [python] 私有变量和私有方法
1.在Python中要想定义的方法或者变量只在类内部使用不被外部调用,可以在方法和变量前面加 两个 下划线 #-*- coding:utf-8 -*- class A(object): name = ...
- python基础-私有变量和方法
如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问 __priva ...
- Python 私有变量的访问和赋值
首先我们这里先描述下: Python中,变量名类似__x__的,以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的(比如 __doc__, __init__等),不是priva ...
- (转)JS中公共/私有变量和方法
私有变量 在对象内部使用'var'关键字来声明,而且它只能被私有函数和特权方法访问. 私有函数 在对象的构造函数里声明(或者是通过var functionName=function(){...}来定义 ...
- Python 私有变量中两个下划线 _ _item 与 一个下划线的区别 _item
python中没有常量的说法, 但是可以通过元组实现一个常量 在python的私有变量中, 存在两个下划线 _ _item 与一个下划线 _item 的区别 前面带两个下划线的私有变量: 只能在本类中 ...
- Private Variable and Private Method - Python 私有变量 和 私有方法
Private Variable and Private Method Python 不象 Java 那样, 通过 private 关键字创建私有属性, python 通过更简洁的实现了'私有属性', ...
- Python私有变量
# 访问限制的保护,代码更加健壮 class Student(object): def __init__(self,name,score): self.__name= name self.__scor ...
- python私有变量的分类
- Python私有变量(Private Variable)
Variables can be private which can be useful on many occasions. A private variable can only be chang ...
- Python的私有变量与装饰器@property的用法
Python的私有变量是在变量前面加上双横杠(例如:__test)来标识, Python私有变量只能在类内部使用,不被外部调用,且当变量被标记为私有后,调用时需再变量的前端插入类名,在类名前添加一个下 ...
随机推荐
- kubernetes ingress网站发布
ingress网站发布 单域名 # 1.创建nginx pod 名称: nginx-nodeport.yaml cat nginx-nodeport.yaml apiVersion: v1 kind: ...
- test(爱测试) 开源接口测试,敏捷测试管理平台10.2.7发布
一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...
- C语言常用数学函数
目录 C语言常用数学函数(头文件#include "math.h") abs()函数 labs()函数 fabs()函数 floor()函数 floorf() floorl() c ...
- Hive 在工作中的调优总结
总结了一下在以往工作中,对于Hive SQL调优的一些实际应用,是日常积累的一些优化技巧,如有出入,欢迎在评论区留言探讨~ 一.EXPLAIN 查看执行计划 二.建表优化 2.1 分区 分区表基本操作 ...
- 使用elementUI组件来完成前台展示
使用elementUI组件来完成前台展示,当然不是全部都用,有用到的时候,才用. 网址:https://element.eleme.cn/#/zh-CN 安装 cnpm i element-ui -S ...
- 10位,13位时间戳转为C#.NET格式时间 DateTime
10位,13位时间戳转为C#.NET格式时间 DateTime - public static DateTime ToDateTime( string timestamp) { var tz = Ti ...
- redis高可用哨兵篇
https://redis.io/docs/manual/sentinel/#sentinels-and-replicas-auto-discovery 官网资料 在上文主从复制的基础上,如果注节点出 ...
- vue柱状图
原型 1 <template> 2 <!-- 上下柱状图 --> 3 <div ref="overallSituation" :style=" ...
- python 日志写入文件
import logging fmt = "%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s: %(message)s" ...
- LiveCharts2:简单灵活交互式且功能强大的.NET图表库
前言 之前的文章中提到过ScottPlot.与oxyplot,这两个是比较常用的.NET图表库,今天介绍一款新的.NET图表库:LiveCharts2. LiveCharts2介绍 LiveChart ...