Python进阶-XVIII 封装、(属性、静态方法、类方法)语法糖、反射

1、封装

  类中的私有化:属性的私有化和方法的私有化

2、属性方法

  @property语法糖的使用

3、静态方法和类方法

  1)staticmethod

  2)classmethod

4、反射

  1)getattr

  2)delattr

  3)hasattr

  4)setattr

原文地址:https://www.cnblogs.com/funyou/p/12037566.html

时间: 2024-07-29 16:28:09

Python进阶-XVIII 封装、(属性、静态方法、类方法)语法糖、反射的相关文章

python面向对象之静态属性/静态方法/类方法/组合

#!/usr/bin/env python # coding:utf-8 class Campus: def __init__(self,name,addr,type): self.Name = name self.Addr = addr self.Type = type def details(self): print("学样的详细信息, 名称:%s 地址:%s 类型:%s" %(self.Name,self.Addr,self.Type) ) c1 = Campus("南

【Python】从1<2<3的语法糖说起

python有一个很有意思的语法糖你可以直接写1<2<3. 这复合我们通常意义上的数学不等式,但对学过C等语言其实是有疑惑的. 我们知道不等式返回的其实是个Bool值,在C中是1,0因此C中下面情况是正确的 0<0<1 因此我们看下面这个情况 True == True == False #False False == False == True #False 从通常意义来说==号从右往左结合,无论如何值都应该是True,但是结果确是False 这就是源于python的一个语法糖,对

python学习笔记之装饰器(语法糖)

什么是装饰器 装饰器的知识点铺垫(函数即变量,高阶函数,嵌套函数) 不带参数的装饰器示例 带参数的装饰器示例 作业 一.什么是装饰器 本质上,装饰器就是返回一个函数的高阶函数.装饰器就是一个函数 装饰器的原则: 不修改被装饰对象的源代码 不修改被装饰对象的调用方式 二.装饰器涉及的知识点 函数即变量 高阶函数 嵌套函数 函数即变量: 在python中,一个变量首先被定义,分配内存空间,然后再使用. 以x=1,这个简单的赋值语句为例子.首先在内存中分配一个空间,x指向该内存空间,该内存空间内存入"

Python中语法糖及带参语法糖

在python中,@符号常被称作语法糖(装饰器),在某函数定义时,用以包装该函数,以达到截取,控制该函数的目的. def d(f): print('d...') k=f #此处保留了传进来的原函数 f def f(x): return k(x)*2 return f #此处不能写成f(x),f是函数句柄,如果带(),则调用,这里只返回句柄. @d def e(x): return x**2print(e(3)) 比如上面代码,@d,就等价于e=d(e),d(e)的返回值为f,f在d中是一个函数句

Python面向对象 --- 新旧式类、私有方法、类属性和类方法、静态方法

一.Python面向对象中的新旧式类 1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object).在python3.x中若没有指定父类,会默认使用的是object作为基类:在python2.x中,若没指定父类,则不会以object作为基类. 2)旧式类(经典类):在定义类时,类后边括号中不用继承object类,甚至不用括号. 3)dir方法是用来查看类的内置方法. 二.私有方法和属性 1)私有属性是对象不希望公开的属性:私有方法是对象不希望公开的方法.在定义私有属性和方法时,在属

8.python之面相对象part.2(特殊属性,类方法,静态方法)

一.关于特殊属性(property). 接着上一篇文章继续说,如果想调用python中一个对象的属性,直接使用类或者对象名称在后面加.点然后写上属性名称就可以跳用这个类或者对象的属性了,比如说像下面这样. class person: def __init__(self,career): self.career = career ayumi = person(career="diva") print ayumi.career #ayumi是实例化出来的一个对象后面加.点,后面接属性名,就

Python之路 - 属性方法,类方法,静态方法

本章内容 属性方法 类方法 静态方法 属性方法 属性方法就是通过使用装饰器 @property , 将一个方法变成一个静态属性 , 于是我们就可以通过访问属性 , 来或得一个方法的返回值 1 from urllib.request import urlopen 2 class Web_page: 3 def __init__(self, url): 4 self.url = url 5 self.__content = None 6 # 将content方法变成属性 7 @property 8

Python类属性和类方法

01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法 __init__ 为 对象初始化 对象创建后,内存 中就有了一个对象的 实实在在 的存在 —— 实例 因此,通常也会把: 创建出来的 对象 叫做 类 的 实例 创建对象的 动作 叫做 实例化 对象的属性 叫做 实例属性 对象调用的方法 叫做 实例方法 在程序执行时: 对象各自拥有自己的 实例属性 调用对象方

Python_静态属性、类方法、静态方法

1.静态属性我们知道类既有函数属性又有数据属性,实例只有数据属性,我们在使用实例调用类的函数属性并运行时,总要带上函数后面的括号才能运行,不然总是调用函数的内存地址,如下图所示: 问题:那么我们如何能像调用数据属性一样调用函数属性呢? 类中提供了@property关键字,可以看成@property是一个装饰器,装饰器的作用是调用类的函数属性key值时,直接来运行该key值对应的函数.像是调用类的属性一样来直接调用并运行类的函数,具体操作如:1.1加上@property关键字后,类的函数属性的不同