Error: AttributeError: Movie instance has no attribute 'show_trailer'

Error: AttributeError: Movie instance has no attribute 'show_trailer'

我为 Class 电影制作了第一个文件夹:

import webbrowser

class Movie():
    def __init__(self,movie_title,movie_storyline,poster_image,trailer_youtube):
        self.title=movie_title
        self.storyline=movie_storyline
        self.poster_image_url=poster_image
        self.trailer=trailer_youtube

def show_trailer(self):
    webbrowser.open(self.trailer)

然后在另一个文件中,我尝试调用函数:

import media

toy_story= media.Movie("toy_story","a boy who have toys","http://www.imdb.com/title/tt0114709/mediaviewer/rm3813007616","http://www.imdb.com/videoplayer/vi2052129305?playlistId=tt0114709&ref_=tt_ov_vi")


avatar=media.Movie("Avatar","A marine on an alien planet","http://www.imdb.com/title/tt0499549/mediaviewer/rm843615744","http://www.imdb.com/title/tt0499549/videoplayer/vi531039513?ref_=tt_ov_vi")
avatar.show_trailer()

但是,我遇到以下错误:

AttributeError: Movie instance has no attribute 'show_trailer'

有什么建议吗?

我认为你的 class Movie 的缩进是错误的。我无法在同一文件夹中重现以下 2 个文件的问题 - 也许您的方法没有正确缩进成为 class:

的一部分

media.py

import webbrowser

class Movie():
    def __init__(self,movie_title,movie_storyline,poster_image,trailer_youtube):
        self.title = movie_title
        self.storyline = movie_storyline
        self.poster_image_url = poster_image
        self.trailer = trailer_youtube

    def show_trailer(self):
        print(self.trailer)

test.py

import media

toy_story=media.Movie("toy_story",
                      "a boy who have toys",
                      "http://www.imdb.com/title/tt0114709/mediaviewer/rm3813007616",
                      "http://www.imdb.com/videoplayer/vi2052129305?playlistId=tt0114709&ref_=tt_ov_vi")

avatar=media.Movie("Avatar",
                   "A marine on an alien planet",
                   "http://www.imdb.com/title/tt0499549/mediaviewer/rm843615744",
                   "http://www.imdb.com/title/tt0499549/videoplayer/vi531039513?ref_=tt_ov_vi")

avatar.show_trailer()

输出:

>> http://www.imdb.com/title/tt0499549/videoplayer/vi531039513?ref_=tt_ov_vi
>> Process finished with exit code 0