Python - 函数属性方法装饰器(二)

1.给类绑定属性值

    类名.属性名 = 属性值

class Stu(object):
    # 构造方法
    def __init__(self):
        print(‘我是一个学生‘)

# 给类添加属性
s = Stu()
s.name = ‘Tom‘
print(s.name)

    注:仅供当前对象使用

2.类、对象的属性操作

    setattr() 函数用于设置属性值,该属性不一定是存在的。

    setattr(object, name, value)

        -object: 对象

        -name:对象属性,字符串

        -value:属性值



    hasattr()函数用于判断对象是否包含对应的属性。

    hasattr(object, name)

        -object: 对象

        -name:属性名,字符串



    getattr() 函数用于返回一个对象属性值。

    getattr(object, name, value)

        -object: 对象

        -name:对象属性,字符串

        -value:属性值,默认为空

    注:当name不存在且存在默认值时getattr() 函数返回默认值


class Stu(object):
    # 构造方法
    def __init__(self):
        print(‘我是一个学生‘)

# 给类设置属性
setattr(Stu, ‘name‘, ‘Tom‘)
# 实例化对象
s = Stu()
s1 = Stu()
print(s.name)
print(s1.name)
# 判断Stu()是否有‘name’属性
print(hasattr(Stu, ‘name‘))
# 获取属性值,属性不存在时报错
print(getattr(Stu, ‘name‘))
# 属性不存在但设置了默认值时返回默认值
print(getattr(Stu, ‘ame‘, ‘Jary‘))

3.给对象和类绑定方法

from types import MethodType

class Stu(object):
    # 构造方法
    def __init__(self):
        print(‘我是一个学生‘)

# 类外部定义一个方法
def set_age(self, age):
    self.age = age

# 给对象或类绑定方法
s = Stu()
s.set_age = MethodType(set_age, s)
s.set_age(18)
print(s.age)
# 新建对象使用此方法报错
# s2 = Stu()
# s.set_age(18)
# print(s2.age)

    注:仅供当前对象使用此方法 新建对象使用此方法会报错(类没有此方法)

    新建对象使用此方法:

原文地址:https://www.cnblogs.com/cxstudypython/p/12021605.html

时间: 2024-08-01 18:49:03

Python - 函数属性方法装饰器(二)的相关文章

Python - 函数进阶之装饰器

本章内容 高阶函数 装饰器 前言 接着上一篇函数进行整理.. 一.高阶函数 高阶函数就是将一个函数以参数的形式传入另一个函数 1 def main_func(func): 2 # 定义一个主函数,并设置一个参数func 3 4 return func 5 # 返回func的值,因为我需要传入一个函数,即返回func的返回值 6 7 def func(): 8 # 定义一个函数作为参数传入主函数 9 10 return "Lyon" 11 # 返回 "Lyon" 给f

python函数三 (装饰器)

一.函数名(学名:第一类对象) 函数名本质上就是函数的内存地址.通俗点就是特殊的普通变量 def func(): print(111) func() print(func) # 结果: # 111 # <function func at 0x00000150713F6048> 1.可以被引用(即可以赋值给其他变量) def func(): print('in func') f = func f() # 结果: # in func 2.可以被当作容器类型的元素 def func(): print

python函数四(装饰器进阶)

一.开放封闭原则 1.对扩展是开放的 任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改.所以我们必须允许代码扩展.添加新功能. 2.对修改是封闭的 比如我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对其进行了修改,很有可能影响其他已经在使用该函数的用户. 装饰器完美的遵循了开放封闭原则. 二.函数的有用信息 def func(): ''' 本函数主要用于绘图,实时接收数据 :return:返回给前端某标签 ''' print(func.__doc

Python不归路_装饰器(二)

装饰器上节回顾 装饰器主要是由高阶函数和嵌套函数组成的,它由有两大特性:1.不改变被装饰函数原代码:2.不改变被装饰函数调用方式 高阶函数主要有两大特性:1.被装饰函数作为高阶函数的参数:2.return函数 嵌套函数特性:在一个函数内,新定义一个函数 下面我们来看一段代码,给login_index()和login_mang()添加用户密码认证的功能的装饰器. user='gally' #定义用户名 password='123' #定义密码 def auth(func): #定义装饰器 被装饰函

python基础三大器之装饰器

闭包 由于闭包这个概念比较难以理解,尤其是初学者来说,相对难以掌握,所以我们通过示例去理解学习闭包. 给大家提个需求,然后用函数去实现:完成一个计算不断增加的系列值的平均值的需求. 例如:整个历史中的某个商品的平均收盘价.什么叫平局收盘价呢?就是从这个商品一出现开始,每天记录当天价格,然后计算他的平均值:平均值要考虑直至目前为止所有的价格. 比如大众推出了一款新车:小白轿车. 第一天价格为:100000元,平均收盘价:100000元 第二天价格为:110000元,平均收盘价:(100000 +

python学习笔记(五):装饰器、生成器、内置函数、json

这周学习了装饰器和生成器,写下博客,记录一下装饰器和生成器相关的内容. 一.装饰器 装饰器,这个器就是函数的意思,连起来,就是装饰函数,装饰器本身也是一个函数,它的作用是用来给其他函数添加新功能,比如说,我以前写了很多代码,系统已经上线了,但是性能比较不好,现在想把程序里面每个函数都加一个功能,用来统计每个函数的运行时间是多少,找出来运行比较慢的函数,来优化代码,就需要添加一个新的功能,来统计程序的运行时间,那这样的话,就得修改每个函数了,需要改代码,但是代码特别多,改完了公司倒闭了,这时候装饰

python笔记5:装饰器、内置函数、json

装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1) print('run....') 现有一个新的需求,希望可以记录下函数的运行时间,需要在代码中计算时间的代码: def run(): start_time = time.time() time.sleep(1) print('run....') end_time = time.time() pr

【Python基础】高阶函数+函数嵌套+闭包 ==装饰器

高阶函数+函数嵌套+闭包 == 装饰器 一 什么是装饰器 二 装饰器需要遵循的原则 三 实现装饰器知识储备 四 高阶函数 五 函数嵌套 六 闭包 七 无参装饰器 八 装饰器应用示例 九 超时装饰器 参考: https://www.cnblogs.com/linhaifeng/articles/6140395.html https://www.cnblogs.com/haiyan123/p/8387769.html 原文地址:https://www.cnblogs.com/XJT2018/p/11

Python(四)装饰器、迭代器&生成器、re正则表达式、字符串格式化

本章内容: 装饰器 迭代器 & 生成器 re 正则表达式 字符串格式化 装饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能. 先定义一个基本的装饰器: ########## 基本装饰器 ########## def orter(func):    #定义装饰器     de