私有属性和方法

# 私有属性:属性名前面有两个下划线,那么这样的属性称为私有属性# 私有方法:方法名前面有两个下划线,那么这样的方法称为私有方法

# 私有属性和私有方法的特点:# 私有属性和私有方法只能在当前类中使用,不能类外或者其他类(子类)里面使用

class Person(object):    def __init__(self,name,age):        self.name = name        self.__age = age

    def show(self):        print(self.name,self.__age)

    def __myage(self):        print(self.__age)

s1 = Person(‘wj‘,24)print(s1.name)# print(s1.__age)s1.show()# s1.__myage()

#查看对象私有属性包装后的名字,查看对象的属性res = s1.__dict__   #对象名.__dict__print(res)# 查看类的方法和属性,可以知道私有方法和私有属性包装后的名称res = Person.__dict__     #类名.__dict_print(res)

知道后就可以直接点来访问()s1._Person__myage()print(s1._Person__age)

原文地址:https://www.cnblogs.com/wjun0/p/11515398.html

时间: 2024-11-05 20:39:23

私有属性和方法的相关文章

JavaScript基础对象创建模式之私有属性和方法(024)

JavaScript没有特殊的语法来表示对象的私有属性和方法,默认的情况下,所有的属性和方法都是公有的.如下面用字面声明的对象: var myobj = { myprop: 1, getProp: function () { return this.myprop; } }; console.log(myobj.myprop); // `myprop` is publicly accessible console.log(myobj.getProp()); // getProp() is publ

Java中子类继承了父类的私有属性及方法吗?

最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单的访问,这里暂不考虑Java反射机制,于是我分析,子类不能继承父类私有的属性及方法,但是分析了内存后,我发现我是错的,在一个子类被创建的时候,首先会在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类的对象.所以所谓的继承使子类拥有父类所有的属性和方法

Java内存理解 && 反射访问私有属性或方法

理解了内存,就理解了一切,就理解了各种各样的语言.所有的语言无非都是这样:局部变量分配内存永远在栈里面,new出来的东西分配内存永远是在堆里,静态的东西分配内存永远是在数据区.剩下的代码肯定是在代码区.所有的语言都是这样. 对于在API文档里面找某个类,如果一个类不用引入包就可以直接使用,那么这个类肯定是在java.lang这个包里. 接口是抽象方法(public)和常量值(public static final)的集合. 抽象类一定要有abstract关键字. Java反射之访问私有属性或方法

javaScript中私有属性和方法

javaScript并没有特殊的语法来表示私有.保护.或公共属性和方法,在这一点上与 java或其他语言是不同的,JavaScript中所有对象的成员是公用的: var myobj={ mypop:1, getProp:function(){ return this.myprop; } }; console.log(myobj.myprop); // 'myprop'是公有可访问的 console.log(myobj.getProp()); //getProp()也是公有的,可访问的 当使用构造

Python私有属性@property方法

# 把得到的属性值的方法上@property# 在设置属性值的方法上@属性名.setter# 两个方法的名字一致,都是属性名#先写@property再写@属性名.setterclass Person(object): def __init__(self,name,age):#在定义对象属性的时候,私有属性不加__ self.name = name self.age = age @property#相当于getName()方法 def name(self): return self.__name#

javascript使用闭包模拟私有属性和方法

最近因为做了一个项目,其中涉及到了js的静态方法和私有方法,这个概念在其语言里面是很常见的,很多语言都有static这个关键字,只要在一个类的前面加上static就表示申明了一个静态类,但是javascript在面向对象的方面没有那么多的特征,他没有专门的static关键字,也没有其他语言的private这样的访问修饰符.要做到这一点就必须使用js自己的一些特性来变相的完成. 首先javascript里面有一个高级特性叫闭包,简单的说js的闭包可以理解成是一种现象或者特性,一般出现在两个函数嵌套

Javascript的私有变量和方法、共有变量和方法以及特权方法、构造器、静态共有属性和静态共有方法

一.私有变量:定义在函数内部的属性和方法称之为该函数的私有属性和方法        共有变量:在函数内部通过this创建的对象和方法称之为该函数的共有属性和方法 特权方法:通过this创建的既可以访问该函数的共有属性和方法,也可以访问该函数的私有属性和方法称之为特权方法 构造器:对象在创建的时候调用特权方法来初始化实例的属性,这个方法也称为构造器 /** * 类的内部私有属性.私有方法.特权方法.共有属性和共有方法以及构造器 * @param id * @param bookname * @pa

js公有、私有、静态属性和方法的区别

现下,javascript大行其道,对于网站开发人员来说,javascript是必需掌据的一门语言,但随着jquery等框架的流行和使用,许多人 对于原生javascript缺乏深入的理解,习惯了函数式的编辑风格,对于闭包.原型总是说不清道不明.对于js面向对象蹩脚的用着,而要了解js面向 对象,就必需先了解js中什么是公有方法.特权方法.静态方法 公有属性和公有方法 function User(name,age){ this.name = name;//公有属性 this.age = age;

python私有方法和私有属性属性理解

私有属性.方法--Python并没有真正的私有化支持,但可用下划线得到伪私有尽量避免定义以下划线开头的变量   (1)_xxx      "单下划线 " 开始的成员变量叫做保护变量,意思是只有类对象(即类实例)和子类对象自己能访问到这些变量,需通过类提供的接口进行访问:不能用'from module import *'导入   (2)__xxx    类中的私有变量/方法名 (Python的函数也是对象,所以成员方法称为成员变量也行得通.)," 双下划线 " 开始的