python基础--装饰器、类的介绍(十)

Python装饰器:从入门到精通 - 全面掌握Python类和装饰器的终极指南 想要成为Python高手?掌握装饰器是必经之路!本文将带你深入理解Python装饰器的精髓,从基础概念到高级应用,全方位提升你的Python编程技能。装饰器(Decorator)是Python中一个极其强大的特性,从Python 2.4版本开始引入,并在后续版本中不断完善和增强。它让我们能够优雅地修改或扩展函数和类的行为,而无需改变其源代码。 2.2 内置装饰器 Python提供了几个强大的内置装饰器:类装饰器是Python面向对象编程中的重要工具,它们能够改变类方法的行为和访问方式。以下是类中常用装饰器的 阅读详情
# 装饰器
#	创建函数,在函数计算前,计算后打印输出
#	如果直接在函数中修改,函数过多很麻烦并且难以维护。	
def add(a,b):
	r = a + b
	return r
def mul(a,b):
	r = a * b
	return r
print(add(123,23))

# 创建一个函数让这个函数自动生产函数
# begin_end函数就是装饰器,通过装饰器可以在不修改函数的情况下对函数进行扩展。
# 定义函数时,可以使用@装饰器来使用该装饰器来装饰需要装饰的函数。一个函数同时可以使用多个装饰器。
def begin_end(old):
	'''
		*args : 接受任意数量参数
		*kwargs : 接受任意关键字参数
	'''
	def new_func(*args,**kwargs):
		print('begin')
		res = old(*args,*kwargs)
		print('end')
		return res
	return new_func
res = begin_end(add)
res = begin_end(mul)
print(res(123,123))

@begin_end
def hello():
	print('hello')
hello()




# 面向对象
# python是一门面向对象的编程语言,所谓面向对象的语言,简单来说就是语言中的所有操作都是通过对象来进行的
# 类
class MyClass:
	pass
mc = MyClass()
print(mc,type(mc))

class  Person(object):
	print('start')
	# 在类中可以定义一些特殊的方法
	# 这些特殊方法都是以__开头__结尾
	# 特殊方法不需要我们自己调用,会在调用类的时候自动调用。
	def __init__(self):
		print('init')
		pass

	# self 第一个参数self 就是调用对象本身
	def say_hello(self):
		# print(self)
		print(self.name)


p = Person()
p1 = Person()
p.name = 'jason1'
p1.name = 'jason2'
p.say_hello()
# print(p)
p1.say_hello()
# print(p1)

# 创建一个包含多个属性的类
class Dog:
	def __init__(self,name,age,gender,height):
		# 可以通过修改内部的属性名称来提高安全性
		self.hide_name = name
		self.hide_age = age
		self.gender = gender
		self.height = height

	def set_name(self,name):
		# 在set方法中可以进行一些逻辑校验处理
		self.hide_name = name

	def set_age(self,age):
		if age > 0:
			self.hide_age = age

	def get_name(self):
		return self.hide_name

	def get_age(self):
		return self.hide_age

	def run(self):
		print('run')

	def eat(self):
		print('eat')

d = Dog('ha11',8,'男',20)
# 在外部任然可以任意修改对象的属性,安全性非常低
# 这样就需要对这些属性进行封装,使外部无法访问一些属性来提高安全性。
# 	使用封装增加了类定义的复杂度,但是确保了数据的安全性
# 			隐藏属性名称,调用者无法随意修改对象中的属性
# 			增加getter,setter方法,很好的控制属性是否只读,并且可以进行其他的一些逻辑处理。
# 			使用setter设置属性,可以增加数据的验证
# 			
# print(d.name,d.age,d.gender,d.height)
print(d.set_age(-3))
print(d.get_age())
d.run()
d.eat()


# 可以给对象的属性使用双下划线__开头,
# 双下划綫开头的属性是对象的隐藏属性,隐藏的属性只能在类的内部访问,无法通过对象访问。
class Rectangle:

	def __init__(self,width,height):
		self._width = width
		self._height = height

	def get_width(self):
		return self._width

	def get_height(self):
		return self._height

	def set_width(self,width):
		self._width = width

	def set_height(self,height):
		self._height = height

	def get_area(self):
		return self._height * self._width

rect = Rectangle(12,12)
print(rect.get_area())
# print(rect.__width) # 访问报错
# python内部给双下划线开头的属性自动加上了类名前缀
# 严格来说还是可以访问,一般都会使用_开头设置私有属性。
# print(rect._Rectangle__width)


# property装饰器,用来将一个get方法转换为对象的属性
# 添加property装饰器后,我们就可以像调用属性一样使用get方法
# 使用property装饰器的方法名必须和属性名一样。
class Person:
	def __init__(self,name,age):
		self._name = name
		self._age = age

	@property
	def name(self):
		return self._name

	@name.setter
	def name(self,name):
		self._name = name


	@property
	def age(self):
		return self._age

	@age.setter
	def age(self,age):
		self._age = age

p = Person('jack',15)
print(p.name,p.age)




 

【Python】新手入门:什么是python装饰器?如何使用python装饰器?什么是python类装饰器?什么是python内置装饰器? Python装饰器是一种高级功能,能够在不修改原代码的情况下动态增强函数或类的行为。其核心原理是通过嵌套函数包装目标函数,在调用前后添加额外逻辑,例如日志记录、性能分析或权限控制。装饰器语法简洁,使用@符号即可快速应用。它支持参数传递,也能通过多层嵌套实现复杂功能。此外,装饰器不仅适用于函数,还能扩展类功能,如实现单例模式或属性管理。内置装饰器如静态方法和类方法进一步简化了代码结构。这种设计模式显著提升了代码复用性和可维护性,是Python编程中极具特色的重要特性。 阅读详情

相关推荐

python 类装饰器和继承

类装饰器: 被装饰器装饰的类的方法和属性集合,是装饰器中的方法和属性集合    的子集 例子一: def myc(myclass):     class InnerClass:         def __init__(self,x,y,z):             self.z=z             self.x=x             self.y=y

JackLiu16的博客 3886

Python 高阶函数(闭包&装饰器)

高阶函数 接收函数作为参数,或者将函数作为返回值的函数是高阶函数 当我们使用一个函数作为参数时,实际上是将指定的代码传递进了目标函数 # 创建一个列表 l = [1,2,3,4,5,6,7,8,9,10] # 定义一个函数 # 可以将指定列表中的所有的偶数,保存到一个新的列表中返回 # 定义一个函数,用来检查一个任意的数字是否是偶数 def fn2(i) : if i % 2 == 0 : return True return False # 这个函数用来

雷银行的博客 314

〖Python零基础入门篇㊱〗- 装饰器与类的装饰器

通过学习装饰器可以让我们更好更灵活的使用函数,通过学会使用装饰器还可以让我们的代码更加优雅。 在我们的实际工作中,很多场景都会用到装饰器,比如记录一些日志、或者屏蔽一些不太合法的程序执行从而使我们的代码更加安全。

易编橙 · 终身成长社群,相遇已是上上签! 4万+

python 类的使用(5)之类装饰器(类的装饰器和类作为装饰器)

在Python中,类可以作为装饰器,同时也能被函数装饰器所装饰。本文简要介绍了类作为装饰器和函数装饰器装饰类的使用方式,有兴趣的不要错过啊!

keepaware的博客 2万+

Zemax物理光学实战:3分钟搞定高斯光束传播模拟(附菲涅尔局部分析技巧)

本文详细介绍了在Zemax中进行高斯光束传播模拟与菲涅尔局部分析的实战技巧。通过3分钟快速设置指南和参数解析,帮助光学工程师准确模拟激光光束特性,避免常见误区。特别分享了菲涅尔局部分析的关键技巧和传播参数优化策略,提升光学系统设计的精度与效率。

lambda的博客 804

cst-python联合仿真的问题解决

cst与python联合仿真出现无法调用CST的问题解决

ayihu_的博客 2370

Python装饰器:类装饰器②

类装饰器与函数装饰器类似,只不过它们接受一个类作为参数,并返回一个新类。obj.new_method() # 调用新增的方法obj.existing_method() # 调用被重写的方法在这个例子中,是一个类装饰器,它接受一个类MyClass作为参数,并返回一个新的类。继承自MyClass,并新增和重写了一些方法。类装饰器是 Python 中一个非常强大的工具,可以用来扩展和修改类的行为。通过类装饰器,我们可以在不修改原始代码的情况下为类添加额外的功能。

结合项目案例,记录点点滴滴,自己回顾,分享他人o__o 3552

STM8开发环境搭建(STVD + COSMIC)

一、STM8开发IDE 1. STVD + COSMIC ST Visual Develop (STVD)只支持汇编开发,C语言开发需要再安装COSMIC,配套起来使用。 2. IAR IAR也可以用来开发STM8 下面介绍STVD + COSMIC的搭建方式 二、环境搭建 1. STVD下载、安装 直接从官网下载:https://www.st.com/en/development-tools/stvd-stm8.html 安装很简单,基本下一步往下点。 2. COSMIC下载、安装 对于stm8可以使用3

a183635870的博客 1万+

python打卡 DAY 29 复习日:类的装饰器

"""类方法内部定义"""return f"调用类 {cls.__name__}""""静态方法内部定义"""return "独立于类和实例"pass# 外部定义类方法return f"外部添加的类方法: {cls.__name__}"# 外部定义静态方法return "外部添加的静态方法"特性内部定义外部定义可读性高低维护性好差动态性固定灵活使用场景常规开发元编程/框架开发。

2301_76970300的博客 2570

ESD放电路径分析

当金属外壳接地情况下,大部分外部干扰信号将会通过外壳,外壳到接地点,再由接地点回到干扰信号的地,实现干扰信号的回流,这点不仅仅适用于​ESD,对于其他的RI类干扰,也同样适合。发现内部金属板跟外壳的搭接处存在较多的缝隙点,该缝隙点对于频率较高的信号能够实现较为理想的回流,但是对于频率没有那么高的信号,则较难以实现回流,我们尝试将这些缝隙用铜箔包裹住,充分降低该金属板跟外壳的接触阻抗​。我们分析,路径3其实是不期望的路径,我们最期望的路径是1,或者2的内部金属部件跟外壳良好接触情况下的路径。

domen_pan的博客 2227

告别色差!用Python+TCS34725颜色传感器实现精准色彩还原(附完整校准代码)

本文详细介绍了如何利用Python和TCS34725颜色传感器实现专业级色彩还原方案。通过双阶校准法(白光校准和黑电平校准)和进阶的光照自适应技术,解决传感器原始数据不准的问题,并提供完整的校准代码和实战案例,帮助开发者实现ΔE<3的高精度色彩识别。

weixin_30836759的博客 209

python中装饰器的介绍以及使用

装饰器是一种在不改变被装饰对象源代码的情况下,通过扩展或修改其功能或行为的方法。它是 Python 中的一项强大功能,基于函数或类实现。

weixin_44883789的博客 3341

特斯拉数字孪生4.0体系解析:从“数字镜像“到“持续进化“的造车革命

当每一辆汽车都拥有自己的“数字分身”,我们正见证的不仅是技术革新,更是整个制造业文明形态的跃迁。其数字孪生体已超越“数字镜像”的被动属性,成为。特斯拉年服务收入超1200美元/车的业绩表明,数字孪生正在将汽车从“交通工具”转变为“持续增值的智能终端”。构建起覆盖设计、制造、使用、服务全链条的虚拟镜像体系,将物理世界与数字世界的融合推向新高度。:特斯拉的实践证明,数字孪生已从“技术选项”升级为“战略必选项”。不仅重塑了汽车产品的价值创造逻辑,更预示着整个制造业向“元宇宙工业”演进的新范式。

beige888的博客 1608

Python——编写类装饰器

本文介绍了Python编写类装饰器的几个示例,包括,单体类、跟踪对象接口以及实现私有属性private

Gavin 2万+

调节桌面图标大小的方法(编程)

如果你对其他操作系统或编程语言有类似的需求,可以根据具体的情况进行相应的调整和搜索相关的库和方法。在编程中,我们可以使用各种桌面应用程序来调节桌面图标的大小。库提供的函数,我们获取了桌面图标的窗口句柄,并使用Windows消息发送方式设置图标的大小。你可以根据自己的需求修改代码中的图标大小值,并在运行代码后观察桌面图标的变化。函数并传入所需的图标大小,这里设置为48x48像素。首先,我们需要使用Python的第三现的方法。首先,我们需要使用Python的第三方库。首先,我们需要使用实现的方法。

CyberFlare的博客 438

超临界二氧化碳发电技术深度解析

超临界二氧化碳发电技术正在突破传统热电转换的物理边界。作为新一代发

硬核科技 602

[Python] 类装饰器

在Python中,是一个装饰器(decorator),用于定义抽象方法(abstract method)。抽象方法是在父类中声明但没有具体实现的方法。子类必须实现该抽象方法才能被实例化。使用装饰器,可以将方法标记为抽象方法。抽象方法在父类中声明时没有提供具体的实现,只有方法名和参数列表。而子类必须提供具体实现以满足父类中的抽象方法要求。以下是一个示例,展示如何使用。

知智 6948

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Python】【装饰器】【类装饰器】

类装饰器是 Python 中一个非常强大的工具,它允许你在不修改类代码的前提下,动态地改变类的行为。通过类装饰器,你可以轻松地扩展类的功能、修改其行为、增加方法、检查构造函数等。在实际开发中,类装饰器常用于自动注册、日志记录、权限检查等场景。

wq6qeg88的博客 795

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python-函数装饰器,类装饰器,属性装饰器

理解装饰器 python中的装饰器看起来类似java中的注解,然而并不相同,Python中装饰器本质是一个函数,只是这个函数可以在不改变别的函数的基础上,增加一些功能,想要理解装饰器,首先了解一下闭包这个概念 闭包 通俗点说,函数A中定义了另外一个函数B,这里A称为外函数,B称为内函数,所谓的闭包就是,内涵数B运用了外函数A定义的变量C,并且外函数的返回值是内函数的引用,这就是闭包,给段代码了解下: def A(number): C= 10 def B(): return int(number) +

m0_47671192的博客 1823

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python类装饰器基础

用法pass描述cls_decorator:装饰器函数;cls:类入参aCallable:可调用对象类装饰器函数接收一个类,并且返回可调用对象,赋值给原类名。

sinat_34735632的博客 689

Python零基础入门篇 - 36 - 装饰器与类的装饰器

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

2301_82242296的博客 1083

【Python】函数装饰器、类装饰器的实现

什么是装饰器 装饰器本身是一个函数 ,作用是为现有存在的函数,在不改变函数的基础上去增加一些功能进行装饰,装饰器是通过闭包的形式实现的。 我另一篇博客:☞闭包的实现原理,如何在内部函数修改外部函数的变量 函数万能装饰器 这个装饰器只是一种形式,没有实际意义。 # 定义万能函数装饰器 def outFunc(func): # 接收不同的参数 def wrapper(*args, **...

高岩 is me 1196

用函数与类实现Python的函数装饰器与类装饰器

引言 装饰器是每一个使用Python的人都会接触到的一种增强函数功能的方式,也是面试官经常会问到的知识点,这里通过一个函数运行时间的装饰器,举例说明常见的四种装饰器实现方法 装饰器的概念 装饰器是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic 装饰器实际上也是一个函数 ,这个函数以闭包的形式定义,而我们知道在Python中万物皆对象,即函数也是一个对象,而且函数对...

Bryce_Liu的博客 1314

python中的类装饰器

装饰器本身既可以是函数也可以是类,装饰的对象同样可以是函数也可以是类。 例1: import time class Timer: def __init__(self,func) -> None: self.func = func def __call__(self, *args, **kwargs): start = time.time() ret = self.func(*args, **kwargs) prin

Xzike的博客 6485

python中类装饰器

类装饰器闭包:类装饰器 闭包: 1.函数嵌套定义          外部函数                    内部函数                               内部函数   &

每天都要进步的博客 1302

python中类作为装饰器

''' class Test(object): print("---------test---------") t = Test() t() # Traceback (most recent call last): # File "F:/python项目/09Day/03python高级/01类作为装饰器.py", line 6, in &lt;module&gt; # t...

qq_29767317的博客 2879
上一篇: Linux基本操作命令--用户,组的创建(九)
下一篇: python基础--模块、包、异常介绍(十一)
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值