gpt4 book ai didi

Python 打印对象地址而不是值

转载 作者:行者123 更新时间:2023-12-05 02:15:33 50 4
gpt4 key购买 nike

我想打印所有已添加到 tracks[] 列表中的轨道。当我尝试这样做时,我得到了该对象在内存中的地址,而不是它的实际值。我显然不明白对象创建/对象从一个类到另一个类的传递是如何工作的。

class Song:

def __init__(self, title, artist, album, track_number):
self.title = title
self.artist = artist
self.album = album
self.track_number = track_number

artist.add_song(self)


class Album:

def __init__(self, title, artist, year):
self.title = title
self.artist = artist
self.year = year

self.tracks = []

artist.add_album(self)

def add_track(self, title, artist=None):
if artist is None:
artist = self.artist

track_number = len(self.tracks)

song = Song(title, artist, self, track_number)

self.tracks.append(song)
print(self.tracks)


class Artist:
def __init__(self, name):
self.name = name

self.albums = []
self.songs = []

def add_album(self, album):
self.albums.append(album)

def add_song(self, song):
self.songs.append(song)


class Playlist:
def __init__(self, name):
self.name = name
self.songs = []

def add_song(self, song):
self.songs.append(song)

band = Artist("Bob's Awesome Band")
album = Album("Bob's First Single", band, 2013)
album.add_track("A Ballad about Cheese")
album.add_track("A Ballad about Cheese (dance remix)")
album.add_track("A Third Song to Use Up the Rest of the Space")
playlist = Playlist("My Favourite Songs")


for song in album.tracks:
playlist.add_song(song)

最佳答案

看起来您正在尝试打印数组,而不是数组中的值。 print(self.tracks) 正在打印 self.tracks 对象,它是一个数组。尝试 print(self.tracks[x]),x 是您要打印的字符串的索引。

如果您想打印该数组中的所有对象,请遍历它并打印每个对象。

使用它遍历数组:

for x in range(len(self.tracks)):
print self.tracks[x].title

for track in self.tracks
print track.title

要获取每首歌曲对象的标题值,请在循环中使用 track.title 对其进行寻址。要获取艺术家或年份,请将其更改为 track.artist 或 track.year。

您可以使用相同的逻辑构建更大的字符串,例如:print("标题"+ track.title + ", 艺术家"+ track.artist)

关于Python 打印对象地址而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51598247/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com