吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 428|回复: 27
上一主题 下一主题
收起左侧

[学习记录] python高级内置函数

  [复制链接]
跳转到指定楼层
楼主
yottaWind 发表于 2024-11-12 09:44 回帖奖励
本帖最后由 yottaWind 于 2024-11-12 12:11 编辑

python的简洁性在于,其有很多的原生函数,可以用于简化代码,下面是一些分类介绍,代码附在最下方
学会使用下面这些函数可以使你的代码更加优雅
  • 迭代器相关:
  • iter(): 返回迭代器对象
  • next(): 返回迭代器的下一个项目
  • map(): 对序列执行函数操作
  • filter(): 过滤序列
  • zip(): 聚合多个序列
  • 函数式编程:
  • lambda: 创建匿名函数
  • reduce(): 对序列累积操作
  • partial(): 固定函数参数
  • 装饰器相关:
  • property(): 将方法转为属性
  • staticmethod(): 静态方法装饰器
  • classmethod(): 类方法装饰器
  • 反射相关:
  • getattr(): 获取对象属性
  • setattr(): 设置对象属性
  • hasattr(): 检查对象属性
  • callable(): 检查对象是否可调用
  • 序列操作:
  • enumerate(): 返回索引序列
  • reversed(): 反转序列
  • sorted(): 排序
  • any()/all(): 检查真值
  • 类型转换:
  • isinstance(): 类型检查
  • issubclass(): 检查类继承关系

1.迭代器相关函数:
[Python] 纯文本查看 复制代码
# iter() 和 next()
my_list = [1, 2, 3]
iterator = iter(my_list)
print(next(iterator))  # 1
print(next(iterator))  # 2

# map()
numbers = [1, 2, 3, 4]
squared = map(lambda x: x**2, numbers)
print(list(squared))  # [1, 4, 9, 16]

# filter()
def is_even(n):
    return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
evens = filter(is_even, numbers)
print(list(evens))  # [2, 4, 6]

# zip()
names = ['Alice', 'Bob']
ages = [25, 30]
for name, age in zip(names, ages):
    print(f"{name} is {age}")  # Alice is 25, Bob is 30


2.函数式编程:
[Python] 纯文本查看 复制代码
# lambda
square = lambda x: x**2
print(square(4))  # 16

# reduce
from functools import reduce
numbers = [1, 2, 3, 4]
sum_all = reduce(lambda x, y: x + y, numbers)
print(sum_all)  # 10

# partial
from functools import partial
def multiply(x, y):
    return x * y
double = partial(multiply, 2)
print(double(4))  # 8


3.装饰器相关:
[Python] 纯文本查看 复制代码
class Person:
    def __init__(self):
        self._age = 0

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

    @staticmethod
    def static_method():
        print("This is a static method")

    @classmethod
    def class_method(cls):
        print("This is a class method")


4.反射相关
[Python] 纯文本查看 复制代码
class Test:
    def __init__(self):
        self.name = "test"

obj = Test()
# getattr
print(getattr(obj, 'name'))  # "test"

# setattr
setattr(obj, 'age', 25)
print(obj.age)  # 25

# hasattr
print(hasattr(obj, 'name'))  # True

# callable
def func():
    pass
print(callable(func))  # True


5.序列操作
[Python] 纯文本查看 复制代码
# enumerate
fruits = ['apple', 'banana', 'cherry']
for i, fruit in enumerate(fruits):
    print(f"{i}: {fruit}")

# reversed
for char in reversed("hello"):
    print(char)  # o l l e h

# sorted
numbers = [3, 1, 4, 1, 5]
print(sorted(numbers))  # [1, 1, 3, 4, 5]

# any/all
numbers = [1, 2, 3, 4, 5]
print(any(x > 3 for x in numbers))  # True
print(all(x > 3 for x in numbers))  # False


6.类型检查
[Python] 纯文本查看 复制代码
# isinstance
print(isinstance(42, int))  # True
print(isinstance("hello", str))  # True

# issubclass
class Animal: pass
class Dog(Animal): pass
print(issubclass(Dog, Animal))  # True

免费评分

参与人数 4吾爱币 +4 热心值 +3 收起 理由
安道尔的鱼 + 1 + 1 我很赞同!
zzSuperWave + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
freckle + 1 + 1 我很赞同!
genius11 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
1477 发表于 2024-11-12 10:47
学习一下
3#
Wolfisman 发表于 2024-11-12 10:49
4#
coderli123 发表于 2024-11-12 10:52
5#
include0 发表于 2024-11-12 10:53
装饰器实现切面编程很实用
6#
Drawin 发表于 2024-11-12 10:57
very goog
7#
genius11 发表于 2024-11-12 10:57
不错 学习了
8#
Dolemon 发表于 2024-11-12 11:01
谢谢大佬整理
9#
yy67283080 发表于 2024-11-12 11:02
很好 学习下
10#
lsb2pojie 发表于 2024-11-12 11:09
学习下,有点陌生了,得重新捡起python了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表