CS2 计算机科学 2
1
🧪

函数参数

Function Parameters

形式参数
实际参数
🧙‍♂️

什么是参数?

想象你是一个魔法师,你的火球术可以调整:
🔥 小火球 → 打小怪
☄️ 大火球 → 打 Boss
❄️ 冰火球 → 打火焰怪

"参数就是让同一个魔法咒语产生不同效果的魔法配料!"
📜 + 🧂 = ✨
咒语 + 配料 = 神奇效果
🥛

形式参数 vs 实际参数

这是最容易混淆的概念,记住这个比喻:

  • 形式参数 (Formal)
    像是一个空杯子。定义函数时,我们不知道里面会装什么,先占个位。
  • 实际参数 (Actual)
    像是倒进去的。调用函数时,我们把具体的东西放进去。
🥛
定义时:空杯子
(形式参数)
⬅️
🫗
调用时:倒水
(实际参数)
💻

代码中的样子

# 1. 定义:形式参数 target 是空的
def attack(target):
  hero.attack(target)

# 2. 调用:实际参数 enemy 是具体的
enemy = hero.findEnemy()
attack(enemy)
"定义时用空标签,调用时传实物!"
def attack(target):
enemy
attack(enemy)
⚔️

关卡实战:智能攻击

看看我们在游戏中怎么写:

def cleaveWhenClose(target):
  if hero.distanceTo(target) < 5:
    hero.cleave(target)
  else:
    hero.attack(target)

while True:
  enemy = hero.findEnemy()
  if enemy:
    cleaveWhenClose(enemy)

参数传递流:

enemy (实参)

⬇️

target (形参)

⬇️

hero.attack(target)

🛠️

为什么要有参数?

灵活性!
带参数的函数像万能工具,不带参数的像一次性餐具。

# ❌ 固定死板
def 打食人魔(): hero.attack("食人魔")

# ✅ 灵活万能
def (): hero.attack()

("食人魔")
("骷髅兵")
🔧

一个扳手,拧所有螺丝

🍹

多个参数 & 默认值

函数可以有多个配料!

def 做饮料(类型, , ):
  ...

做饮料("奶茶", "半糖", "少冰")

默认参数:如果不说,就按默认的来。

def 攻击(目标, 技能=False): ...
🏷️

作用域 & 命名

作用域 (Scope)

形式参数只在函数内部有效!出了函数,没人认识它。

命名规范

target, enemy, distance (清晰)
a, b, x (看不懂)
函数内部
target ✔️
target ❌ (外部不可见)
🎓

炼金术士口诀

"形式参数像空杯,
定义时候占个位!"

"实际参数像倒水,
调用时候传数据!"

🏆