# 编辑者:闫龙
# 1.什么是绑定到对象的方法,如何定义,如何调用,给谁用?有什么特性
#在类中定义的(self)方法都是绑定到对象的方法
#定义
class a:
def b(self):#绑定到对象的方法
pass
#调用:
c = a()
c.b()#调用a类中绑定到对象c的b(self)方法
#既然是绑定到对象的方法,当然是给实例化之后的对象使用了
#当对象调用方法时,对象会将自己当做第一个参数传递给方法 # 2.什么是绑定到类的方法,如何定义,如何调用,给谁用?有什么特性
#静态方法和类方法都是绑定到类的方法
#静态方法定义:
class ClassStaticFunc:
@staticmethod#定义一个静态方法需要调用的装饰器staticmethod
def StaticFunc():#被staticmethod修饰过的StaticFunc方法就是一个静态方法
pass
#调用:
ClassStaticFunc.StaticFunc()#无需实例化直接类名打点儿调用类中的静态方法
#静态方法是让类去调用的方法
#需实例化直接类名打点儿调用类中的静态方法,静态方法可以被实例化的对象调用,但是一般不这么使用
#类方法定义:
class ClassFunc:
@classmethod#定义一个类方法需要调用的装饰器classmethod
def ClassMethod(cls):#被classmethod修饰过的ClassMethod方法就是一个类方法
pass
#调用:
ClassFunc.ClassMethod()#无需实例化直接类名打点儿调用类方法
#类方法顾名思义是与类绑定的方法,一定是给类调用的方法
#当类调用类方法时,会将当前调用方法的类当做第一个参数传递到方法中
# 3.什么是解除绑定的函数,如何定义,如何调用,给谁用?有什么特性
#定义在类的内部,并且被staticmethod修饰过的方法
#定义:
class NoBandFunc:
@staticmethod
def NoBang(a,b,c):
pass
#调用:
nbf = NoBandFunc.NoBang(1,2,3)
#or:
nbfs = NoBandFunc()
nbf1 = nbfs.NoBang(1,2,3)
#解除绑定方法不在自动传值 # 4.什么是property,如何定义,如何使用,给谁用,什么情况下应该将一个属性定义成property,有什么好处?
#是一个将方法隐藏变更调用方法的方式,让用户看起来是在调用属性而不是方法,property修饰过的方法,会产生该方法的setter,del方法用来修改和删除属性
#定义
class PropertyClass:
def __init__(self,name):
self.__Name = name
@property
def PropertyFunc(self):
print(self.__Name)
@PropertyFunc.setter
def PropertyFunc(self,name):
self.__Name = name
print(self.__Name)
@PropertyFunc.deleter
def PropertyFunc(self):
del self.__Name
#调用:
pc = PropertyClass("egon")
pc.PropertyFunc
pc.PropertyFunc("egon_SomeBody")
del pc.PropertyFunc
#一般在__属性的情况下使用property,这样可以有效的隐藏,展示,控制__属性对用户的影响

python概念-各类绑定的概念和property的变态一面的更多相关文章

  1. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  2. Airflow Python工作流引擎的重要概念介绍

    Airflow Python工作流引擎的重要概念介绍 - watermelonbig的专栏 - CSDN博客https://blog.csdn.net/watermelonbig/article/de ...

  3. python之模块copy,了解概念即可

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块copy,了解概念即可 import copy #浅拷贝 #copy拷贝一个对象,但是对象 ...

  4. python 封装、绑定

    目录 python 封装.绑定 1.数据.方法的封装 2.隐藏属性 3.开放接口 4.绑定方法 1.对象的绑定 2.类的绑定(classmethod) 3.非绑定方法(staticmethod) 4. ...

  5. Python的名字绑定

    Python的名字绑定 在Python中,对象是通过名字进行关联和引用的.Python通过名字绑定操作来引入名字. Python中的所谓的代码块就是一段作为执行单元的程序.比如:模块.函数.类定义.在 ...

  6. python基础-abstractmethod、__属性、property、setter、deleter、classmethod、staticmethod

    python基础-abstractmethod.__属性.property.setter.deleter.classmethod.staticmethod

  7. 【Python开发】python发送各类邮件的方法

    转载: python发送各类邮件的主要方法 python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点. 一.相关模块介绍 发送 ...

  8. Python学习笔记_01:基本概念介绍

    目录 1.Python语言简介 2.Python中常用数据结构 2.1什么是列表? 2.2什么是元组? 2.3什么是字典? 2.4索引及分片 3.其它基本概念 3.1数据类型和变量 3.2生成器 3. ...

  9. Python面向对象之面向对象基本概念

    面向过程和面向对象概念 过程和函数:过程类似于函数,只能执行,但是没有返回结果:函数不仅能执行,还能返回结果. 面向过程和面向对象 基本概念 面向过程-怎么做 把完成某一个需求的所有步骤从头到尾逐步实 ...

随机推荐

  1. [转帖]Oracle字符集的查看与修改 --- 还未尝试 找个周六 试试.

    Oracle 字符集的查看和修改 感谢原作者 改天试试 https://www.cnblogs.com/rootq/articles/2049324.html 一.什么是Oracle字符集 Oracl ...

  2. JavaWeb基础【1】—— Tomcat

    此笔记是学习黑马程序员JavaWeb系列视频的课堂笔记. 感谢黑马程序员. 一.Tomcat概述 Tomcat服务器由Apache提供,开源免费.由于Sun和其他公司参与到了Tomcat的开发中,所以 ...

  3. P3835 【模板】可持久化平衡树

    题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作(对于各个以往的历史版本): 插入x数 删除x数(若有多个相同的数,因只删除一个,如果没有请忽略该操作) 查询x数的 ...

  4. MT【155】单调有界必有极限

    (清华2017.4.29标准学术能力测试20) 已知数列$\{a_n\}$,其中$a_1=a$,$a_2=b$,$a_{n+2}=a_n-\dfrac 7{a_{n+1}}$,则_______ A.$ ...

  5. 编译安装keepalived,实现双主mysql高可用

    安装keepalived 1.官网下载源码包,解压 # wget http://www.keepalived.org/software/keepalived-1.1.20.tar.gz # tar x ...

  6. 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's

    我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题 单点登录(四)-----遇到问题-----cas serve ...

  7. Android 图片加载框架 Glide 的用法

    https://github.com/bumptech/glide Android图片加载框架最全解析(一),Glide的基本用法http://blog.csdn.net/guolin_blog/ar ...

  8. 基于Java visualvm的可视化监控的使用

    1 Java visualVM可视化监控工具打开方式 ctrl + r 快捷键调出运行窗口,输出 jvisualvm指令,即可打开java visualVM工具.详情如下图: 2 Java Visua ...

  9. SpringMVC 上传文件(文件非必填)MultipartHttpServletRequest

    原文:https://blog.csdn.net/dorothy1224/article/details/79136676 上传文件(文件非必填)MultipartHttpServletRequest ...

  10. openwrt<转载--openwrt框架分析 >

    这次讲讲openwrt的结构. 1. 代码上来看有几个重要目录package, target, build_root, bin, dl.... ---build_dir/host目录是建立工具链时的临 ...