python概念-各类绑定的概念和property的变态一面
# 编辑者:闫龙
# 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的变态一面的更多相关文章
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- Airflow Python工作流引擎的重要概念介绍
Airflow Python工作流引擎的重要概念介绍 - watermelonbig的专栏 - CSDN博客https://blog.csdn.net/watermelonbig/article/de ...
- python之模块copy,了解概念即可
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块copy,了解概念即可 import copy #浅拷贝 #copy拷贝一个对象,但是对象 ...
- python 封装、绑定
目录 python 封装.绑定 1.数据.方法的封装 2.隐藏属性 3.开放接口 4.绑定方法 1.对象的绑定 2.类的绑定(classmethod) 3.非绑定方法(staticmethod) 4. ...
- Python的名字绑定
Python的名字绑定 在Python中,对象是通过名字进行关联和引用的.Python通过名字绑定操作来引入名字. Python中的所谓的代码块就是一段作为执行单元的程序.比如:模块.函数.类定义.在 ...
- python基础-abstractmethod、__属性、property、setter、deleter、classmethod、staticmethod
python基础-abstractmethod.__属性.property.setter.deleter.classmethod.staticmethod
- 【Python开发】python发送各类邮件的方法
转载: python发送各类邮件的主要方法 python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点. 一.相关模块介绍 发送 ...
- Python学习笔记_01:基本概念介绍
目录 1.Python语言简介 2.Python中常用数据结构 2.1什么是列表? 2.2什么是元组? 2.3什么是字典? 2.4索引及分片 3.其它基本概念 3.1数据类型和变量 3.2生成器 3. ...
- Python面向对象之面向对象基本概念
面向过程和面向对象概念 过程和函数:过程类似于函数,只能执行,但是没有返回结果:函数不仅能执行,还能返回结果. 面向过程和面向对象 基本概念 面向过程-怎么做 把完成某一个需求的所有步骤从头到尾逐步实 ...
随机推荐
- Qt之美(一):d指针/p指针详解(解释二进制兼容,以及没有D指针就会崩溃的例子。有了D指针,所使用的对象大小永远不会改变,它就是该指针的大小。这个指针就被称作D指针)good
Translated by mznewfacer 2011.11.16 首先,看了Xizhi Zhu 的这篇Qt之美(一):D指针/私有实现,对于很多批评不美的同路人,暂且不去评论,只是想支持 ...
- 浅析Web数据存储-Cookie、UserData、SessionStorage、WebSqlDatabase
Cookie 它是标准的客户端浏览器状态保存方式,可能在浏览器诞生不久就有Cookie了,为什么需要Cookie 这个东东?由于HTTP协议没有状态,所以需要一个标志/存储来记录客户浏览器当前的状态, ...
- ie8 ajaxSubmit 上传文件提示下载
转载 解决ie下ajaxsubmit上传文件提示下载文件问题 主要是应为放回类型为json,返回text/html
- 对synchronized的一点理解
一.synchronized的使用(一).synchronized同步方法1. “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题.2. 如果多个线程共同访问 ...
- 关于字符编码:ascii、unicode与utf-8
转自:https://foofish.net/unicode_utf-8.html 阮一峰老师对普及计算机基础技术功不可没,但毕竟老师不是神,因此也避免不了对某些概念有一些错误的理解,<字符编码 ...
- maven简单理解
前言: maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能,其他也没啥,所以大家接触的时候不要害怕! 1 . 帮你下载jar包 maven项目会有一 ...
- 【NOI】荷马史诗
追逐影子的人,自己就是影子 ——荷马 Allison最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛>和< ...
- java多线程 -- 原子量 变量 CAS
多线程原子性问题的产生和解决 原子变量:在 java.util.concurrent.atomic 包下提供了一些原子变量. 1. volatile 保证内存可见性,可以查看atomic中变量是使用v ...
- C#线程篇---线程池如何管理线程(6完结篇)
C#线程基础在前几篇博文中都介绍了,现在最后来挖掘一下线程池的管理机制,也算为这个线程基础做个完结. 我们现在都知道了,线程池线程分为工作者线程和I/O线程,他们是怎么管理的? 对于Microsoft ...
- python的str()字符串类型的方法详解
字符串一旦创建,不可修改,一旦修改或者拼接,都会造成重新生成字符串,因为内存存数据是一个挨着一个存的,如果增加一个字符串的话,之前的老位置只有一个地方,不够,这是原理性的东西,在其他语言里面也一样 7 ...