已有183人关注
global是否可以将列表从局部变量变为全局变量?
发表在Python图书答疑 2023-02-08 《零基础学Python》第7章 面向对象程序设计 201页-201页
是否精华
版块置顶:
class Movie():
  def __int__(self):
      print('欢迎使用自动售票机')
  film_def():

        global film
        film = ['1、<环太平洋>', '2、<头号玩家>', '3、<红海行动>', '4、<光头强>']
        film_name = ''
        for i in film:
            film_name += +i
                print(film_name)
        film_num = int(input('选择你喜欢的电影:'+ film_name))
        return film_num - 1
movie = Movie()
film_my = film[movie.film_def()]     # 46行
print('电影:',film_my)



执行如下:
欢迎使用自动售票机~~
Traceback (most recent call last):
  File "D:/PycharmProjects/mypro02/0jc201.4.py", line 46, in <module>
    film_my = film[movie.film_def()]
NameError: name 'film' is not defined


2023-02-08 19:43:54编辑
分享到:
精彩评论 3
翼龙
学分:109 LV3
2023-02-09
沙发

没有在模块级别定义全局变量“film”,可在代码的最前面增加一句“film = None”。

翼龙
学分:109 LV3
2023-02-09
板凳

需要先为变量“film”赋值,然后再使用它。


可以把:

film_my = film[movie.film_def()    # 46行


修改为:

index = movie.film_def()
film_my = film[index]


yuhuazhi
学分:8 LV1
2023-02-10
地板

翼龙 发表于2023-02-09 11:48

需要先为变量“film”赋值,然后再使用它。


可以把:

film_my = film[movie.film_def()    # 46行


修改为:

index = movie.film_def()
film_my = film[index]


嗯,谢谢大侠,按你说得做成功了

首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照