首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在类实例上调用__str__时,没有得到输出?

当我在类实例上调用__str__时,没有得到输出?
EN

Stack Overflow用户
提问于 2016-08-08 14:08:46
回答 2查看 51关注 0票数 0

我只是个初学者,所以对我要轻松一点。我只是在玩__str__方法,发现当我试图打印实例时,它就是不起作用

代码语言:javascript
复制
import random

brand = ("Samsung","Nokia","Sony","ATAT","Reliance")
no_of_sim = ("Dual-sim","Single-sim")
color = ("Blue","Violet","Orange","Green")
no_of_camera =("Front","Front-Back","Back")
no_of_cores = ("Dual Core","Quad Core","Octa Core")
additional = ("Bluetooth","NFS","Gps")

class mobile:
    def __init__(self,**kwargs):
        name = self
        self.brand = random.choice(brand)
        self.sim = random.choice(no_of_sim)
        self.color = random.choice(color)
        self.camera = random.choice(no_of_camera)
        self.cores = random.choice(no_of_cores)
        self.additional = random.choice(additional)
        for key,value in kwargs.items():
            setattr(self,key,value)
    def __str__(self):
        return "{} Is a {} color {} phone with {} facing cameras and it a {} with {}".format(self.__class__.__name__,self.color,self.brand,self.camera,self.cores,self,additional)
代码语言:javascript
复制
from mobile_phone import mobile
swiss = mobile()
print(swiss)
# It doesnt show up
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-08 14:35:23

在需要点的地方有一个逗号:

代码语言:javascript
复制
import random

brand = ("Samsung","Nokia","Sony","ATAT","Reliance")
no_of_sim = ("Dual-sim","Single-sim")
color = ("Blue","Violet","Orange","Green")
no_of_camera =("Front","Front-Back","Back")
no_of_cores = ("Dual Core","Quad Core","Octa Core")
additional = ("Bluetooth","NFS","Gps")

class mobile:
    def __init__(self,**kwargs):
        name = self
        self.brand = random.choice(brand)
        self.sim = random.choice(no_of_sim)
        self.color = random.choice(color)
        self.camera = random.choice(no_of_camera)
        self.cores = random.choice(no_of_cores)
        self.additional = random.choice(additional)
        for key,value in kwargs.items():
            setattr(self,key,value)
    def __str__(self):
        return("{} Is a {} color {} phone with "
               "{} facing cameras and it a {} with {}".format(
                    self.__class__.__name__,
                    self.color,
                    self.brand,
                    self.camera,
                    self.cores,
                    self.additional))  # changed from self,additional

#from mobile_phone import mobile
swiss = mobile()
print(swiss)

输出:

代码语言:javascript
复制
mobile Is a Green color Reliance phone with Front-Back facing cameras and it a Dual Core with Bluetooth
票数 0
EN

Stack Overflow用户

发布于 2016-08-08 14:32:32

str方法的末尾有一个错误:

代码语言:javascript
复制
self,additional

它使str方法递归。把",“改为”消除问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38831442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档