【Python】函数记录

1. enumerate(可迭代对象, 起始下标=0)

  • 作用:遍历序列时,同时拿到 下标索引 + 元素值。
  • 可迭代对象:list,tuple,str,set,dict,range,Dataset(PyTorch),DataLoader(PyTorch)
    fruit_list = ["苹果", "香蕉", "橘子"]
    for fruit_name in enumerate(fruit_list):
        # 不拆包时,可以组包成一个元组
        print(fruit_name)
    # ------------------输出结果---------------
    (0, '苹果')
    (1, '香蕉')
    (2, '橘子')

2. eval() 【谨慎使用】

  • 作用:把字符串里的代码,👉当成真正的 Python 代码执行
# 1. 计算字符串里的数学表达式
print(eval("10 + 5"))    # 15
print(eval("3 * (2 + 4)")) # 18

# 2. 把字符串转成列表 / 字典 / 元组(超级常用)
s = "[1,2,3,4]"
lst = eval(s)
print(type(lst))  # <class 'list'>

s = '{"name":"小明", "age":20}'
d = eval(s)
print(type(d))  # <class 'dict'>

# 3. 执行简单代码
x = 10
print(eval("x + 5"))  # 15 
  • 【慎重】:如果用户输入恶意代码,eval 会直接执行!
s = input("请输入表达式:")
eval(s)

# 如果用户输入:__import__('os').system('rm -rf /')。服务器"根"文件直接删除。

3. isinstance()

  • 作用:判断一个对象是不是指定类型,返回 True / False

  • 使用场景:

    • 判断单个数据类型
    • 同时判断多个数据类型
    • 判断自定义类对象
    • 继承关系也会返回True
# -----------------------单个数据类型-----------------------
# 判断单个数据类型
a = 10
print(isinstance(a, int))      # True
print(isinstance(a, str))      # False

c = [1,2,3]
print(isinstance(c, list))     # True

# -----------------------多个数据类型-----------------------
# 判断多个数据类型。 "and"关系,满足一个即返回True
x = 3.14
# 是 int 或 float 都算
print(isinstance(x, (int, float)))  # True

# -----------------------自定义对象-------------------------
# 判断自定义类对象
class Person:
    pass

p = Person()
print(isinstance(p, Person))   # True

# -----------------------继承关系---------------------------
# 继承关系也会返回True
class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
print(isinstance(dog, Dog))     # True
print(isinstance(dog, Animal))  # True  继承也算

4. super()

  • 作用:调用父类方法

  • 写法:

    • 简化写法:super().方法名()
    • 老式写法:super(当前类名, 对象).方法名()
  • 四层继承链条

    • 动物 (第 1 层) → 马 (第 2 层) → 白马 (第 3 层) → 千里马 (第 4 层)
# 第一层:基类 动物
class Animal:
    def run(self):
        print("跑起来")

# 第二层:马 继承 Animal
class Horse(Animal):
    def run(self):
        print("迈着矫健的步伐跑起来")

# 第三层:白马 继承 Horse
class WhiteHorse(Horse):
    def run(self):
        print("白马轻轻奔跑")

# 第四层:千里马 继承 WhiteHorse
class SwiftHorse(WhiteHorse):
    def __init__(self):
        self.name = "千里马"

if __name__ == '__main__':
    # 创建最子类对象
    sh = SwiftHorse()
    print(sh.name)
    print("-" * 30)

    # 1. 调用自己本身父类(四层)
    sh.run()
    print("-" * 30)

    # 2. 跳过四层,调用三层 WhiteHorse
    super(SwiftHorse, sh).run()
    print("-" * 30)

    # 3. 跳过三层,调用二层 Horse
    super(WhiteHorse, sh).run()
    print("-" * 30)

    # 4. 跳过二层,调用一层 Animal
    super(Horse, sh).run()

# ---------------------------------------------------输出结果
# 千里马
# ------------------------------
# 白马轻轻奔跑
# ------------------------------
# 白马轻轻奔跑
# ------------------------------
# 迈着矫健的步伐跑起来
# ------------------------------
# 跑起来
posted @ 2026-05-12 20:55  静心笃行。  阅读(18)  评论(0)    收藏  举报