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#但是返回的时候还是要self.__私有属性名

@name.setter#相当于setName()方法    def name(self,name):        if len(name) > 6:            print("非法")        else:            self.__name = name#赋值的时候也要self.__属性名 = 属性名

p1 = Person("张三12358",13)print(p1.name)

‘‘‘总结:1、在定义对象属性的时候不需要在对象属性加__2、要先定义@property相当于get方法3、再定义@属性名.setter相当于set方法4、在对象调用的时候直接是对象名.属性名‘‘‘
注意:这种方法设置私有属性,在创建对象实例初始化赋值时就会调用@属性名.setter方法过滤数据

原文地址:https://www.cnblogs.com/guojie-guojie/p/9268467.html

时间: 2024-08-02 23:57:57

Python私有属性@property方法的相关文章

Python私有属性和私有方法

私有属性和私有方法 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 不希望公开的 方法 定义方式 在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法 class Women: def __init__(self, name): self.name = name # 不要问女生的年龄 self.__age

Python私有属性

1 访问类的私有属性首先我们定义一个包含私有属性的类,尝试使用实例对象访问它 [Python] 纯文本查看 复制代码 ? 1 2 3 4 5 6 7 8 class People(object):     def __init__(self):         self.__age = 20 people = People() print(people.__age) 结果如下: [Python] 纯文本查看 复制代码 ? 1 2 3 4 Traceback (most recent call l

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反射之访问私有属性或方法

Python私有属性set 和get方法

class Person(object): #self不是关键字,换成其他的标识符也是可以的,但是一般不要改 def run(self): print("run") def eat(self,food): print("eat" + food) def say(self): print("hello! my name is %s,i am %d years old" %(self.name,self.age)) def __init__(self

Python私有属性set和get方法2

class Person(object): count = 0 #类属性 def __init__(self,name,age):#实例属性 # self.__name = name#name是私有属性:私有属性接收是set/get方法; # self.__name 也可以用 self.setName(name) 这样的好处是在创建实例的时候,不用再重新去给赋值(调用set方法),初始化就可以赋值 self.setName(name) self.age = age def run(self):

python特殊属性和方法的运用 -转自http://blog.csdn.net/business122/article/details/7568446

用__dict__把dict转换为对象的属性 1 class Messenger: 2 def __init__(self, **kwargs): 3 self.__dict__ = kwargs 4 5 6 m = Messenger(info="some information", b=[’a’, ’list’]) 7 m.more = 11 8 print m.info, m.b, m.more  以下为转载: Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能

javaScript中私有属性和方法

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