相关疑难解决方法(0)

__str__和__repr__之间的区别?

之间有什么区别__str____repr____str__

python repr magic-methods

2545
推荐指数
21
解决办法
61万
查看次数

Django 中的 __str__ 函数在做什么?

我正在阅读并试图理解 django 文档,所以我有一个合乎逻辑的问题。

有我的models.py文件

from django.db import models

# Create your models here.


class Blog(models.Model):
    name = models.CharField(max_length=255)
    tagline = models.TextField()

    def __str__(self):
        return self.name



class Author(models.Model):
    name = models.CharField(max_length=255)
    email = models.EmailField()

    def __str__(self):
        return self.name



class Post(models.Model):
    blog = models.ForeignKey(Blog)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateField()
    mod_date = models.DateField()
    authors = models.ManyToManyField(Author)
    n_comments = models.IntegerField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    def __str__(self):
        return self.headline
Run Code Online (Sandbox Code Playgroud)

__str__每个类中的每个函数在这里做什么?我需要这些功能的原因是什么?

python django django-models

20
推荐指数
3
解决办法
4万
查看次数

如何在类下正确使用函数?

我目前正在学习Python。由于我是OO(面向对象)编程的忠实拥护者,因此显然在Python中应用它并不难。但是,当我尝试它时,它似乎与C#完全不同。

如下所示,我正在尝试创建一个具有三个属性Id,Hp和Mana的角色类。得分是通过将Hp和Mana相加然后乘以10得出的。

如您所见,在定义MyChar where之后id=10 hp=100 mana=100,我期望的MyChar.Score是(100 + 100)* 10,即2000,但是很奇怪,它说:

bound method Character.Score of <__main__.Character object at 0x0000021B17DD1F60>作为的结果print(MyChar.Score)

我该如何解决这个问题?

这是我的代码:

class Character:

    def __init__(self, Id, Hp, Mana):
        self.Id = Id;
        self.Hp = Hp;
        self.Mana = Mana;


    def Score(self):
        return (self.Hp + self.Mana)*10;

MyChar = Character(10, 100, 100);

print(MyChar.Score)
Run Code Online (Sandbox Code Playgroud)

python python-3.x

8
推荐指数
3
解决办法
1350
查看次数

标签 统计

python ×3

django ×1

django-models ×1

magic-methods ×1

python-3.x ×1

repr ×1