设置私有属性之后,如何修改私有属性

class Room:
def __init__(self,name,length,width):
self.__name = name
self.__length = length
self.__width = width def get_name(self):
return self.__name def set_name(self,newName): #约束
if type(newName) is str and newName.isdigit() == False:
self.__name = newName #这样写的好处是。不能让别人随意修改。
#起到一个保护作用。
else:
print("姓名不合法") def area(self):
return self.__length * self.__width room = Room("小明",2,4)
print(room.area())
room.set_name("")
print(room.get_name())

python修改私有属性

#问题:父类的私有属性,能否被子类调用。
#结果:不能被调用。
class Foo:
__key = "保险柜的钥匙" #_Foo_key class Foo2(Foo):
print(Foo.__key) #_Foo2_key
父类的私有属性,能不能被子类调用的。

Python 安全修改私有属性的更多相关文章

  1. Python的伪私有属性

    什么是伪私有属性? 在Python中,没有类似 private 之类的关键字来声明私有方法或属性. Python中要声明私有属性,需要在属性前加上双下划线(但是结尾处不能有双下划线),如:self._ ...

  2. java反射调用私有方法和修改私有属性

    //调用私有方法package com.java.test; public class PrivateMethod { private String sayHello(String name) { r ...

  3. Python 类的私有属性与私有方法

    1.隐藏的使用场景 在Python类中,有些属性和方法只希望在对象的内部被使用,而不希望在外部被访问到, 2.定义方式, 在属性名或方法名前增加两个下划线,定义的就是私有属性或方法 #其实这仅仅这是一 ...

  4. Python面向对象之私有属性和方法

    私有属性与私有方法 应用场景 在实际开发中,对象的某些属性或者方法 可能只希望在对象的内部被使用,而不希望在外部被访问到: 私有属性 就是对象不希望公开的属性: 私有方法 就是对象不希望公开的方法: ...

  5. Python面向对象之私有属性和私有方法

    01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象  ...

  6. python 类的私有属性和方法 (转载)

    转载:http://www.runoob.com/python/python-object.html 类属性与方法 类的私有属性 __private_attrs:两个下划线开头,声明该属性为私有,不能 ...

  7. Python中的私有属性私有方法、类属性类方法以及单例设计模式

    私有属性是对象不希望公开的属性,私有方法是对象不希望公开的方法.在定义私有属性和私有方法时,在属性或者方法前,加上__(两个下划线) 公有方法可以通过对象名直接调用,私有方法不能通过对象名直接调用,只 ...

  8. Python类的私有属性

    class Bar(object): __age = 18 sex = 'male' def __init__(self, ): pass def f(self): print(self.__age) ...

  9. Python高级语法-私有属性-名字重整(4.7.1)

    @ 目录 1.说明 2.代码 关于作者 1.说明 使用__dict__魔法方法 可以看到所有的属性,包括公有的,私有的,保护的等等 不能调用的原因就是,解释器把名字属性给重组了 其实是可以访问到的 2 ...

随机推荐

  1. 多对多的三种创建方式-forms相关组件-钩子函数-cookie与session

    多对多的三种创建方式 1.全自动(推荐使用的**) 优势:第三张可以任意的扩展字段 缺点:ORM查询不方便,如果后续字段增加更改时不便添加修改 manyToManyField创建的第三张表属于虚拟的, ...

  2. TPO6-1Powering the Industrial Revolution

    The source had long been known but not exploited. Early in the eighteenth century, a pump had come i ...

  3. 发生 Configuration system failed to initialize 错误的一个特例

    一般情况下,.net 程序启动时发生 Configuration system failed to initialize 错误, 大都与 config 文件中 <configSections&g ...

  4. 897A. Scarborough Fair# 斯卡布罗集市(模拟)

    题目出处:http://codeforces.com/problemset/problem/897/A 题目大意:将某个范围内的某个字符换成另外一个字符 #include<iostream> ...

  5. Class<T> 泛型获取T的class

    getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类.接口.基本类型或 void)的直接超类的 Type然后将其转换ParameterizedTy ...

  6. 如何编译(helloworld)可以在开发板上运行的应用

    本节介绍如何编译可以在开发板上运行的应用,编译方法很简单.基于:iTOP4412开发板首先要确定一下环境变量,如下图所示,使用“cd”命令回到根目录,然后使用命令“vim .bashrc”打开环境变量 ...

  7. 吴裕雄--天生自然python机器学习:基于支持向量机SVM的手写数字识别

    from numpy import * def img2vector(filename): returnVect = zeros((1,1024)) fr = open(filename) for i ...

  8. mysql之结果集去重

    mysql操作中,经常会遇到对结果集的去重 本篇文章列出几种应对办法: 1.使用distinct做去重,测试了一下,DISTINCT可以支持多列去重 select DISTINCT user_id_t ...

  9. The Maximum Unreachable Node Set

    题目描述 In this problem, we would like to talk about unreachable sets of a directed acyclic graph G = ( ...

  10. yaml文件的格式

    后缀为.yml    格式一般就是key:空格 value    这里的value可以是 普通数据(数字,字符串)   ---------------------------------------- ...