python 类方法装饰器_python静态方法和类方法、装饰器

本文介绍了Python编程中的类方法、静态方法和继承的概念及应用。类方法通过@classmethod修饰,可以访问类的属性和方法;静态方法使用@staticmethod修饰,不依赖于类的实例;继承允许创建子类并复用父类的属性和方法。此外,还探讨了装饰器的基本原理,装饰器可以在不修改原有函数代码的情况下,增加函数的功能,例如Joker装饰器用于处理函数参数的和。
摘要由CSDN通过智能技术生成

一、静态方法和类方法

1.静态调用:@staticmethod

class A(object):

@staticmethod

def a():

print('a')

A.a()

如果类中需要非该类成员存在,则可以使用静态调用的方法

2.示例

输入四条边判断是否它是正方形,如果是:计算面积,用@staticmethod

class zfx(object):

def __init__(self,a,b,c,d):

self.a=a

self.b=b

self.c=c

self.d=d

@staticmethod

def is_valid(a,b,c,d):

for i in [b,c,d]:

if i !=a:

return False

else:

return True

def area(self):

if res == True:

area_ = self.a *self.b

return area_

fx = zfx(5,5,5,5)

res = fx.is_valid(5,5,5,5)

fx.area()

if res == True:

print(fx.area())

3.类方法

(1)默认值:

def A(bl = 'hello'):

print(bl)

A()

输出结果为:hello

(2)cocaltime

#调用localtime这个库:

from time import time,localtime,sleep

print(time())

时间戳,从1970年1月1日00.00.00开始到现在经历过的秒数

(3)@classmethod

@classmethod:获取自身类(cls)中的属性,并且可以更改.

classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等

4.类与类之间的关系(继承)

(1)第一步要类名中写上继承的类

(2)建议用类名(classname)__init__(self):a.__init__(self)

(3)示例:创建一个父类创建一个子类,父类计算两个数字的和计算SUM_,子类打印这个SUM_

class fu(object):

def __init__(self):

self.a = 10

self.b = 20

def sum_(self):

sum=self.a + self.b

return sum

class zi(fu):

def __init__(self):

fu.__init__(self)

def PRINT(self):

res = self.sum_()

print(res)

b= zi()

b.PRINT()

输出:30

5.列表生成式和列表生产器

#列表生成式

a = [x for x in range(100)]

print(a)

#列表生成器

a = (x for x in range(100))

print(a)

列表生成式与列表生成器的优缺点:

(1)生成式:

优点: 计算速度快,因为一次性已经全部加载到内存中了,适合数据量不是太大的情况10000- 2000-

缺点: 占用内存

(2)生成器:

优点: 节约内存空间

缺点: 计算速度慢,因为要生成

二、装饰器

1.函数的闭包:函数包函数

2.装饰器的用法:先走装饰器再走函数

3.装饰器示例:创建三个函数,两个参数,装饰器处理这两个参数的和,每一个函数打印这两个参数

def Joker(func):

​ def warp(n1,n2,n3):

​ num = n1 + n2

​ return func(0,num,n3)

​ return warp

*装饰器将前两个数字求和,函数本身第三个参数乘上这个和*

@Joker

def SUM(num1,num2,num3):

​ print(num1,num2,num3)

​ print(num2 * num3)

SUM(10,2,3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值