猿问

Python中“=>”(由等于和大于组成的箭头)的含义是什么?

如以下代码所示

def __str__(self):
        return f"User: {self.observer.pk} => Habit: {self.habit.pk}"

有.这是什么意思呢?=>


千巷猫影
浏览 117回答 2
2回答

胡说叔叔

python类的方法定义了如何将该类转换为字符串。我使用您提供的代码编写了一个小示例来表明:__str__class TestHelper:&nbsp; &nbsp; def __init__(self, pk):&nbsp; &nbsp; &nbsp; &nbsp; self.pk = pkclass Test:&nbsp; &nbsp; def __init__(self, observer_pk, habit_pk):&nbsp; &nbsp; &nbsp; &nbsp; self.observer = TestHelper(observer_pk)&nbsp; &nbsp; &nbsp; &nbsp; self.habit = TestHelper(habit_pk)&nbsp; &nbsp; def __str__(self):&nbsp; &nbsp; &nbsp; &nbsp; 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

SMILET

具有双下核的方法,如str,称为魔术/dunder方法。“str”作业 - 您可以为 Object 定义字符串表示形式。f'blabla {some_variable}' - 这是 f-string。您可以使用 {} 括号访问字符串中的变量。假设 self.observer.pk 是12,self.habit.pk 是2,所以:此代码将为对象定义具有字符串表示形式,例如“User:12 => Habit:2”,这就是字符串。干杯芬里尔
随时随地看视频慕课网APP

相关分类

Python
我要回答