Python面向对象(类的成员之属性)
day24
类的成员之属性
class Foo():
def bar(self):
print("bar") @property
def per(self):
print('')
return 1 obj = Foo()
obj.bar() r = obj.per#实际上是方法,但通过字段的方式访问
print(r)
实际上是方法,但通过字段的方式访问。
执行结果:
bar
123
1 Process finished with exit code 0
@property,@per.setter,@per.deleter
class Foo():
def __init__(self):
self.name = 'a' def bar(self):
print("bar") @property#获取
def per(self):
print('')
return 1 @per.setter#设置
def per(self, val):
print(val) @per.deleter
def per(self):
print(666)
obj = Foo()
obj.bar() r = obj.per#实际上是方法,但通过字段的方式访问,对应@property
print(r) obj.per = 123#对应 @per.setter
del obj.per#对应 @per.deleter
执行结果:
bar
1234
1
123
666 Process finished with exit code 0
属性的另一种表达方式
class Foo: def f1(self):
return 123 def f2(self,v):
print(v)
def f3(self):
print('del') per = property(fget=f1,fset=f2,fdel=f3,doc='adfasdfasdfasdf') # @property
# def per(self):
# return 123 obj = Foo()
ret = obj.per#对应与@property
print(ret) obj.per = 123456#对应于@per.setter del obj.per#对应于@per.deleter
property中最多写三个函数,doc为介绍。
Django中有用到以上方式。
执行结果:
123
123456
del Process finished with exit code 0
Python面向对象(类的成员之属性)的更多相关文章
- python面向对象(类的成员及类方法)
类的普通成员 字段 方法 属性 类的高级成员 静态字段 静态方法 属性方法 类方法 类成员修饰符 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中, ...
- Python面向对象 | 类的成员
一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分. 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel ...
- Python面向对象(类的成员之方法)
day24 类的成员之方法 - 普通方法,保存在类中,由对象来调用,self > 对象 - 静态方法,保存在类中,由类直接调用 - 类方法,保存在类中,由类直接调用,cls > 当前类 c ...
- Python面向对象(类的成员之字段)
day24 类的成员之字段 # 字段 - 普通字段,保存在对象中,执行只能通过对象访问 - 静态字段,保存在类中, 执行 可以通过对象访问 也可以通过类访问 clas ...
- Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass
Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...
- Python面向对象静态方法,类方法,属性方法
Python面向对象静态方法,类方法,属性方法 属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法: ...
- Java面向对象——类的成员
Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...
- python 面向对象(类的成员,属性,绑定和非绑定,)
面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实 ...
- python 面向对象(类的特殊成员)
python 面向对象: (思维导图 ↑↑↑↑) 类的特殊成员 python的类成员存在着一些具有特殊含义的成员 1.__init__: 类名() 自动执行 __init__ class Foo(ob ...
随机推荐
- BZOJ 1211[HNOI2004]树的计数 - prufer数列
描述 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi) ...
- BZOJ 1345[BOI]序列问题 - 贪心 + 单调栈
题解 真的没有想到是单调栈啊. 回想起被单调栈支配的恐惧 最优情况一定是小的数去合并 尽量多的数,所以可以维护一个递减的单调栈. 如果加入的数比栈首小, 就直接推入栈. 如果加入的数大于等于栈首, 必 ...
- doctotext
文档解析库 http://www.it610.com/article/1936051.htm
- Debian use sudo
刚安装好的Debian默认还没有sudo功能.1.安装sudo# apt-get install sudo2.编辑 /etc/sudoers ,添加如下行# visudoroot ALL=(ALL:A ...
- shell的基本语法
一 赋值运算符 1 += :使用方法是,((x+=需要增加的数字))算和值. 2 *= :使用方法是,((x*=需要怎加的倍数))算乘值. 3 %= :使用方法是,((x%=需要除以的数字))算余数 ...
- Android中px, ppi, dpi, dp, dip, sp概念解析
Android中px, ppi, dpi, dp, dip, sp概念解析
- 实体类在set字段时报空指针异常
实体类在set字段时报空指针异常的原因: T_Entry entry=null;entry.setGeneName("1212");entry.setEntryName(" ...
- 2018.07.30 bzoj4355: Play with sequence(线段树)
传送门 维护区间覆盖成非负数,区间变成max(xi+a,0)" role="presentation" style="position: relative;&q ...
- 2018.07.23 codeforces 438D. The Child and Sequence(线段树)
传送门 线段树维护区间取模,单点修改,区间求和. 这题老套路了,对一个数来说,每次取模至少让它减少一半,这样每次单点修改对时间复杂度的贡献就是一个log" role="presen ...
- 28. Bad Influence of Western Diet 西式饮食的消极影响
28. Bad Influence of Western Diet 西式饮食的消极影响 ① The spread of Western eating habits around the world i ...