当前位置: 首页 > article >正文

python 基础笔记 2(函数, 类)

起因, 目的:

把很久以前,自己写的笔记发布出来。
现在粉丝多了,也不觉得丢人了。
为什么这些序号不连贯,因为有些很熟悉的东西,我都删了。

内建函数, 函数
  1. zip()函数,利用 * 号操作符,可以将元组解压为列表。
    我怀疑是zip的解包只能用一次。在内存中解开一次之后就销毁了。目前没有更好的证据。
  2. 内建函数 locals(), 返回一个字典,包含当前命名空间内的全部变量。
  3. 内建函数 map(function, iterable, …),是惰性的,返回一个迭代器。
  4. 内建函数 filter(function, iterable),
    用于过滤序列,返回一个迭代器对象,可以使用 list() 来转换。
  5. 要在函数中将某个变量定义为全局变量,
    在需要被定义的变量前加一个关键字global即可。
类:
  1. 如果想直接使用 self 作为一个可迭代对象的话,需要自己来实现一个 iter()方法。
    7.str, 函数是为了调用__init__中的变量,在输出的时候,能以可读的方式展
    示出来。。。是给用户看的。

  2. repr()函数是给开发者看的,是一个地址,代码部分和__str__()是一样的,
    所以创建一个类的时候,可以简写成: repr = str

  3. 读源码的时候看到一种写法,叫类的装饰器,可以更改类的属性,我简化了一下:

def change_name(cls):
    new_name = "hey"
    cls.name = new_name
    return cls

@change_name
class A:
    name = "halo"

if __name__ == '__main__':
    print(A.name)   # hey
  1. @property # 只需要在类定义里修改相关代码即可,不需要在每一处调用修改
    我的理解是,@property 只是比 @staticmethod 少了一对括号而已。
  2. self.__hair = “black”, 这个是类的私有属性,防止外部来修改
  3. 以 self 作为第一个参数的方法都是实例方法。
  4. 类方法(class method)
  • 会作用于整个类,对类作出的任何改变会对它的所有实例对象产生影响
  • 可以从类直接调用,不必实例化, 类名也不需要括号: A.do_something()
  1. 鸭子类型(duck typing),如果它像鸭子一样走路,像鸭子一样叫,那么它就是一只鸭子。
    在鸭子类型中,并不关注对象本身的具体类型,只关注它能实现的功能。
  2. def str(self):
    return self.name
    repr = str
  3. 没必要过度构建(使用)类和对象,试试内建的数据结构。比如,collections 模块。

http://www.kler.cn/news/358437.html

相关文章:

  • 数据结构(C语言):顺序表
  • 计算机网络基本架构示例2
  • 【前端学习】HTML+CSS+JavaScript 入门教程
  • 【云原生网关】Higress 从部署到使用详解
  • C++游戏开发入门:用 SDL 实现你的第一个 2D 游戏
  • 小米等手机彻底关闭快应用
  • 制作ppt技巧
  • JavaScript 数学运算与日期处理
  • 分布式锁-redis实现方案
  • 搭建localhost本地 ChatGPT 模型与总结
  • STM32+DHT11温湿度传感器(含完整代码)
  • apple watch 版本太高,自己的 iPhone 版本太低,无法绑定
  • 重定向 缓冲区
  • 如何在 React 中更新状态对象的某个值
  • 基于SSM果蔬经营系统的设计
  • 滚雪球学Redis[8.1讲]:Redis的扩展与未来发展
  • chatgpt搭建大模型技术知识解读与总结
  • 【力扣打卡系列】滑动窗口与双指针(盛最多水的容器)
  • 【C++】13.string类的底层
  • ACH支付详解,北美电商为何偏爱这一方式