被算法入门拦住的那些年--类和函数

本文详细介绍了Python中的类(class)、构造函数(__init__)、方法(functions)以及实例(instance)的概念,强调了`self`参数的作用,并讨论了如何通过`__init__`设置限制条件。此外,还提及了Python中缓存(cache)作为提升性能的策略,以及装饰器在实现缓存中的应用。
摘要由CSDN通过智能技术生成

之前举例子中频繁出现一个单词class,这个单词可以理解为一个工厂(类),

假定是做石膏娃娃的工厂,工厂里包含很多操作间,我们往工厂运输一些原材料(参数,也成为类的属性),进入第一个操作间(函数1,也称为类中方法)挤压形状,第二个操作间(函数1)填色,最后从工厂运输出成品(object和instance)。

那么init操作间里放的就是必须要有的材料--石膏和颜料,如果我们运往工厂石膏10斤,蓝色颜料50克,那么此时的工厂为一个实例instance,再将石膏和颜料输入工厂中造熊猫造型石膏娃娃的车间,输出的是蓝色熊猫石膏娃娃

class User(object):

  def __init__(self,name,age):

    self.name = name

    self.age = age

  def GetName(self):

    return self.name

  def GetAge(self):

    return self.age

u = User('kzc',17) ##instance#实例  #init中是必须含有的参数

print (u.GetName()) #KZC # method是依赖于instance的。

print (u)  # <__main__.User object at 0x0000019357C20460>

函数

上述例子中频繁出现一个单词 def,这个单词是用来定义函数的,将某些代码带包起来并起个名字,之后喊他的名字就可以进行调用,类似一个操作间。在class里面的function叫method。

例如

 def findTheCity(n=12: int, edg: List[List[int]] ) -> int:

定义 小红和爸爸妈妈年龄差(年龄=12:整数,爸爸妈妈年龄:列表)

这句话的意思就是输入小红的年龄,如果你不输入就默认是12岁,输入爸爸妈妈的年龄,

'__init__'

'__init__' 就是告诉这个工厂的限制条件 ,是调用类组建instance时必须填写的内容

class person():

def init (self,name,gender,birth,**kw):

self.name=name

self.gender=genderself.birth=birth

for k,w in kw.iteritems():

setattr(self,k,w)

def sayhi(self):

print('my name is',self.name)

xiaoming = person('xiao Ming','Male','1991-1-1',job='student',tel='18089355',stdid='15010')

xiaohong=person('Xiao Hong','Female','1992-2-2')

此类中name,gender,birth是必须填写的属性,k,w则不必须

self

u = User('kzc',17) ##instance

u.GetName()

在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。在类的代码(函数)中,需要访问当前的实例中的变量和函数,

即,访问Instance中对应的变量(property 'kzc',17 ):Instance.ProperyNam读取之前的值和写入新的值、对应函数(function):u.GetName (),即执行对应的动作。因此需要访问对应的实例Instance对象本身。所以,我们需要用到self。

@cache

缓存是一种空间换时间的策略,缓存的设置可以提高计算机系统的性能。具体到代码中,缓存的作用就是提高代码的运行速度,但会占用额外的内存空间。

在Python的内置模块 functools 中,提供了高阶函数 cache() 用于实现缓存,用装饰器的方式使用:@cache

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值