技术韭菜 2023-05-29 22:38 采纳率: 58.7%
浏览 21
已结题

Python类的问题


class Person(object):
    def say_hello(self):
        print('打招呼!')


# 定义一个表示中国人的类
class Chinese(Person):
    def say_hello(self):  # 重写方法
        super().say_hello()
    print('吃了吗?')


chinese = Chinese()
chinese.say_hello()

上边Python代码中print('吃了吗?')直接写在了def say_hello(self)的外边,代码也不报错,这是什么原理?这样的话貌似print语句和def定义的函数语句是并列关系了,类里边能直接写print语句?

  • 写回答

5条回答 默认 最新

  • 於黾 2023-05-30 09:36
    关注

    你写在类外面的
    chinese = Chinese()
    不也照样执行了吗
    对于java来说,所有代码和属性都必须定义在类里,所有需要执行的语句都要写在函数里
    而对于python来说,它根本没有块的概念,你可以写在任何地方
    只要不写在函数里,它就是个静态代码,只会执行一次
    如果你直接写进文件里,那么首次import文件的时候会执行
    如果你写进类里,那么首次加载类的时候会执行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 请采纳用户回复 5月30日
  • 修改了问题 5月30日
  • 展开全部

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上