2 回答

TA贡献1804条经验 获得超8个赞
python类的方法定义了如何将该类转换为字符串。我使用您提供的代码编写了一个小示例来表明:__str__
class TestHelper:
def __init__(self, pk):
self.pk = pk
class Test:
def __init__(self, observer_pk, habit_pk):
self.observer = TestHelper(observer_pk)
self.habit = TestHelper(habit_pk)
def __str__(self):
return f"User: {self.observer.pk} => Habit: {self.habit.pk}"
t = Test(5, 8)
print(t)
如果运行此代码,则会打印出结果,因为该方法会自动将其参数转换为字符串。您可以将“=>”替换为所需的任何内容,然后将其打印出来。如果注释掉该方法,则将打印该方法 - 这是从该类继承的默认方法所执行的操作。您可以根据需要将类转换为字符串 - 这完全取决于您User: 5 => Habit: 8print__str__<__main__.Test object at some_hex_address>__str__object

TA贡献1796条经验 获得超4个赞
具有双下核的方法,如str,称为魔术/dunder方法。
“str”作业 - 您可以为 Object 定义字符串表示形式。
f'blabla {some_variable}' - 这是 f-string。您可以使用 {} 括号访问字符串中的变量。
假设 self.observer.pk 是12,self.habit.pk 是2,所以:
此代码将为对象定义具有字符串表示形式,例如“User:12 => Habit:2”,这就是字符串。
干杯芬里尔
添加回答
举报