# 属性方法:把一个方法变成一个静态属性
#1
class Dog(object):
def __init__(self,name):
self.name=name
@property#属性
def eat(self):#不能传参数(见调用时为d1.eat,不用加括号)
print('%s is eating %s'%(self.name,'肉'))
def talk(self):
print('吃饱了')
d1=Dog('白蹄')
d1.eat#不用加括号,加括号就错
d1.talk()
#2
class Dog(object):
def __init__(self,name):
self.name=name
@property
def eat(self):
print('%s is eating %s'%(self.name,'肉'))
@property
def talk(self,):
print('吃饱了')
@talk.setter
def talk(self,food):
print('set to food',food)
d1=Dog('白蹄')
d1.eat
d1.talk
d1.talk='包子'
#3
class Dog(object):
def __init__(self,name):
self.name=name
self.__food=None#私有属性
@property
def eat(self):
print('%s is eating %s'%(self.name,'肉'))
@property
def talk(self,):
print('%s吃%s嘛?'%(self.name,self.__food))
@talk.setter
def talk(self,food):
print('set to food',food)
self.__food=food
d1=Dog('白蹄')
d1.eat
d1.talk
d1.talk='包子'
d1.talk
# del d1.talk出错,属性方法此种方式删不掉 #4
class Dog(object):
def __init__(self,name):
self.name=name
self.__food=None
@property
def eat(self):
print('%s is eating %s'%(self.name,'肉'))
@property
def talk(self,):
print('%s吃%s嘛?'%(self.name,self.__food))
@talk.setter
def talk(self,food):
print('set to food',food)
self.__food=food
@talk.deleter
def talk(self):
del self.__food#删掉私有属性
print('删完了')
d1=Dog('白蹄')
d1.eat
d1.talk
d1.talk='包子'
d1.talk
del d1.talk
# d1.talk出错,已经删除不能运行 #http://www.cnblogs.com/alex3714/articles/5213184.html

  

python_102_属性方法的更多相关文章

  1. HTML5 Audio/Video 标签,属性,方法,事件汇总

    HTML5 Audio/Video 标签,属性,方法,事件汇总 (转) 2011-06-28 13:16:48   <audio> 标签属性:src:音乐的URLpreload:预加载au ...

  2. python7 静态方法、类方法、属性方法 ;反射;异常处理

      #-*- coding:utf8 -*- # 静态方法@staticmethod # 静态方法(当eat变成静态方法后,再通过实例调用时就不会自动把实例本身当作一个参数传给self了.) clas ...

  3. Delphi中TStringList类常用属性方法详解

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...

  4. React-Native的基本控件属性方法

    对React-Native的学习,从熟悉基本控件开始. View 属性方法 序号 名称 属性Or方法 类型 说明 1 accessibilityLabel 属性 string   2 accessib ...

  5. 常用元素的属性/方法 attr / val / html /text

    常用元素的属性/方法 得到一个元素的高度, $("#myid").height() 得到一个元素的位置, $("#myid").offset() 返回的是一个o ...

  6. List的方法和属性 方法或属性 作用

    List的方法和属性 方法或属性 作用 Capacity 用于获取或设置List可容纳元素的数量.当数量超过容量时,这个值会自动增长.您可以设置这个值以减少容量,也可以调用trin()方法来减少容量以 ...

  7. iOS对UIViewController生命周期和属性方法的解析

    目录[-] iOS对UIViewController生命周期和属性方法的解析 一.引言 二.UIViewController的生命周期 三.从storyBoard加载UIViewController实 ...

  8. HTML5 Audio/Video 标签,属性,方法,事件汇总 (转)

    HTML5 Audio/Video 标签,属性,方法,事件   <audio> 标签属性:src:音乐的URLpreload:预加载autoplay:自动播放loop:循环播放contro ...

  9. JS中的内置对象简介与简单的属性方法

    JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一 ...

随机推荐

  1. 将Gridview导出到Excel

    GridViewToExcel(EdceExcelGV, "application/ms-exce","xxxxxx表"); protected void Gr ...

  2. 编译出arm Android环境下的C++可执行文件

    要想编译出arm环境的C++可执行文件主要就是利用交叉编译器进行编译.编译过程本身都大同小异. 1.安装交叉编译器,交叉编译器的安装方法大致有下面几种: A.debian/ubuntu 系统可以直接输 ...

  3. 前端需要了解的http知识

    一.五层协议1. OSI(Open System Interconnection 开放式系统互联)七层协议 1)应用层 2)表示层 3)会话层 4)传输层 5)网络层 6)数据链接层 7)物理层2. ...

  4. PowerDesigner设计表时显示注释列Comment,Columns中没有Comment的解决办法

    我使用的PowerDesigner版本为16.5,如下图: 在所要编辑的表上双击,打开Table Properties窗口,并将上面的选项卡切换到Columns,如下图: 我们点击Customize ...

  5. uoj#349. 【WC2018】即时战略(动态点分治)

    传送门 头一次看着题解有一种咱不会\(c++\)的感觉-- 看题解吧-- //minamoto #include<bits/stdc++.h> #include "rts.h&q ...

  6. C# 主要运算符中的成员访问(?.)

    在开发过程中,我遇到了一种null 条件成员访问的写法,开始不太理解,之后专门查了微软的官方文档,下面是具体内容:   三种成员访问的三种形式 (1)x.y:成员访问. (2)x?.y:null 条件 ...

  7. 黑马Spring学习 bean

  8. Python大战机器学习——基础知识+前两章内容

    一  矩阵求导 复杂矩阵问题求导方法:可以从小到大,从scalar到vector再到matrix. x is a column vector, A is a matrix d(A∗x)/dx=A d( ...

  9. MiniProfiler NET Core

    MiniProfiler 来分析 ASP.NET Core 应用 它会把结果直接放在页面的左下角,随时可以点击查看:这样的话就可以感知出你的程序运行的怎么样:同时这也意味着,在你开发新功能的同时,可以 ...

  10. 转 sqlplus/RMAN/lsnrctl 等工具连接缓慢

    AIX上sqlplus /as sysdba    rman target / 或者lsnrctl start时或者通过sqlplus system/oracle@orcl这样通过监听连接等方式来登陆 ...