首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int

[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int

原创
作者头像
oeasy
发布2024-12-29 08:17:33
发布2024-12-29 08:17:33
1770
举报

055_python编程_容易出现的问题_函数名的重新赋值_print_int0 播放 · 0 赞同视频

点击可播放视频
点击可播放视频

python编程_容易出现的问题_函数名的重新赋值_print_int 回忆上次内容

  • 上次 了解了
  • 关键字列表
  • keywords list
  • 关键字 不能做 标识符
  • 除了 关键字(keywords)之外
  • 还有啥 不适合 做标识符 吗?🤔

三问

  • 试试这个

print print print = 1 print

  • print 本是 内建的函数
  • 重新赋值后
  • 成为1了
  • 还能输出吗?

尝试输出 print("hello")

  • 不能输出了
  • 整形数字 不能被调用
  • 为啥会这样呢?

错位

  • 相当于
  • 把整形数字
  • 当成 函数来调用了

1("hello")

  • 把1 直接当做函数来 调用
  • 那哪儿成啊?
  • 除了 函数名
  • 还有啥 最好别当 变量名 吗?

常见错误

  • int 是 整数类
  • 可以完成 类型转化

b = int("6") c = int(7.1)

  • int类型
  • 能用来转化变量类型
  • int 可以 被声明成 变量吗?

重新赋值后 int = 5 a = int(6)

  • 将 5 赋给 变量 int
  • int 一旦被 重新 赋值
  • 就 不能 完成类型转化 了
  • 和 print 一样

观察

  • 重启 游乐场
  • 观察 类型 变化
  • 这个赋值过程
  • 从 类型(type)
  • 到 整型(int)
  • 模块名 呢?
  • 也能 这么乱赋值吗?👹

赋值 import os os locals()

  • 引入os
  • 本地就有了

覆盖 os = 1 os locals()

  • 覆盖之后
  • os就不再是
  • 导入的 那个模块了
  • 那 删了 之后
  • 还能 恢复 吗?

max

  • max 也是
  • 内建的函数
  • builtin-function
  • 和 print一样
  • 将 1 赋给 max 之后
  • 再调用 max

max = 1 max(1, 2)

  • TypeError
  • max 不再是 内建的函数
  • 而是整数 无法调用了
  • 这max 能 在本地 看到 吗?

locals locals()

  • max 此时
  • 是一个 整形变量名
  • 不是 函数名
  • 那我 要是
  • 把 max 这个变量
  • 删了呢?

删除max del max

  • 在本地
  • 删除 max 变量
  • 本地变量 max 消失
  • __builtins__.max 从新被识别为
  • 还是 内建函数
  • builtins-function
  • 就恢复了!😄
  • 去总结吧!

总结

  • 这次 了解到
  • 已有的函数名、类名、模块名
  • 不适合 覆盖了 赋新值
  • 会 失去原有功能
  • 比如 max

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档