簡體   English   中英

Python-創建並實例化類

[英]Python - Create and instantiate class

我正在建立一class播放列表,其中將包含許多相同類型的播放列表。

class playlist(object):
      def __init__(self,name):
         self.name = name

我想實例化他們通過用戶:

      def hard_rock(self,user):
         self.user = user
         #query and retrieve data from music API
         #return playlist

      def pop_rock(self,user):
         self.user = user
         #query and retrieve data from music API
         #return playlist

      #and so on

創建實例:

r = playlist('rock')
r.hard_rock('user1')

這是建立和實例化類的邏輯方法嗎?

如果我理解正確,則需要播放列表和用戶

class Playlist(object):
    def __init__(self, name):
        self.name = name
        self.liked_by = list()

    @classmethod
    def get_genre(cls, genre):
        # this relies on no instance of this class
        pass
        # return api data...

class User(object):
     def __init__(self, name):
         self.name = name

     def likes_playlist(self, playlist):
         playlist.liked_by.append(self.name)

然后是一些例子

playlists = list()
hard_rock = Playlist('hard_rock')

joe = User('joe')
joe.likes_playlist(hard_rock)

playlists.append(hard_rock)
playlists.append(Playlist('pop_rock'))

country = Playlist.get_genre('country')

如果播放列表是應用程序的核心組件(使用類繼承的非常簡單的示例),則可能會發生這種情況。

>>> class playlist:
...     def __init__(self,name, user):
...         self.name = name
...         self.user = user
... 
>>> class hardrock(playlist):
...     def __init__(self,name, user):
...         playlist.__init__(self, name, user)
... 
>>> test = hardrock('my_awesome_hardrock_list', 'my_awesome_username')
>>> print test.name
my_awesome_hardrock_list
>>> print test.user
my_awesome_username

您可以開始僅為用戶使用字符串,然后將其替換為實際對象,並在播放列表和用戶之間添加某種關系。 有關更多想法,請參閱cricket_007的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM