如何使用python中自己的类中定义的变量正确打印句子

如何使用python中自己的类中定义的变量正确打印句子,python,function,class,variables,self,Python,Function,Class,Variables,Self,所以我在python中创建了一个名为Pizza的类,它需要4个参数……我希望能够插入参数,然后打印出来,这样它就可以用一个干净的句子表达出来。例如,如果我把这个放进终端--- 我想得到这个结果--- 你的意大利香肠比萨直径为16英寸,价格合理 10.5美元,每个馅饼10片 不幸的是,在我的代码中,当我打印出变量时,我总是得到这个结果--- 试一试 还有,把班级比萨换成这个 class Pizza: def __init__(self, name, diameter, price, sli

所以我在python中创建了一个名为Pizza的类,它需要4个参数……我希望能够插入参数,然后打印出来,这样它就可以用一个干净的句子表达出来。例如,如果我把这个放进终端---

我想得到这个结果--- 你的意大利香肠比萨直径为16英寸,价格合理 10.5美元,每个馅饼10片

不幸的是,在我的代码中,当我打印出变量时,我总是得到这个结果---

试一试

还有,把班级比萨换成这个

class Pizza:
    def __init__(self, name, diameter, price, slices):
        self.name = name
        self.diameter = diameter
        self.price = price
        self.slices = slices
    def myfunc(self):
        print("Your " +  self.name + " pizza has a diameter of " + str(self.diameter) + " inches, a price of " + str(self.price) + " and " + str(self.slices) + " slices per pie")

因此它不会导致“TypeError:只能将str(而不是“int”)连接到str”错误

您告诉Python打印Pizza对象,因此它很高兴地遵守了:)。另外,在
myfunc()
方法中,您正在向数字添加字符串(这将导致错误)

您应该尝试以下方法:

class Pizza:
    def __init__(self, name, diameter, price, slices):
        self.name = name
        self.diameter = diameter
        self.price = price
        self.slices = slices
    def myfunc(self):
        print("Your", self.name, "pizza has a diameter of", self.diameter, "inches, a price of", self.price, "and", self.slices, "slices per pie")

输出:
你的辣味香肠比萨直径为16英寸,价格为10.5英镑,每个馅饼10片
好问题!可以将对象的名称设置为str函数:

class Pizza:
    def __init__(self, name, diameter, price, slices):
        self.name = name
        self.diameter = diameter
        self.price = price
        self.slices = slices
    def __repr__(self):
        return "Your {} pizza has a diameter of {} inches, a price of {} and {} slices per pie".format(self.name,self.diameter,self.price,self.slices)


appetizer = Pizza("Pepperoni", 16, 10.50, 10)
print(appetizer)

查找
\uuuu str\uuuu
\uuuu repr\uuuu
方法。由于某种原因,它给了我这个错误。。。。。。TypeError:只能将str(而不是“int”)连接到str@samdisorbo确保将myfunc()更改为我或其他用户发布的内容。如果在字符串和数字之间尝试+,则会出现此错误。可以在print()参数之间使用逗号,也可以使用str()将print语句中的每种类型转换为字符串。或者像其他用户建议的那样使用.format()。好的,我已经设置好了,但是现在我正在尝试实现新的变量,比如每平方英寸成本,但是当我调用它们时,我得到的“str”不是可调用的错误…self.cost\u每平方英寸=float((price/((diameter/2)*2)*math.pi)))…这就是我用来定义变量的,然后我通过做开胃菜来调用它。每平方英寸成本…你有没有可能再帮上忙?嗯,你是调用变量还是调用print(开胃菜。每平方英寸成本)?这个变量似乎不是字符串,但我不确定是否已转换它。另外,请注意,如果您使用的是Python 3.6+,则可以使用f-strings:
f“您的{self.name}比萨饼的直径为{self.diameter}英寸,价格为{self.price},每个馅饼的{self.slices}片。”
通常比
.format()
更容易跟踪。
from Pizza import Pizza
appetizer = Pizza("Pepperoni", 16, 10.50, 10).myfunc()
#you don't need to print appetizer because myfunc does it already
class Pizza:
    def __init__(self, name, diameter, price, slices):
        self.name = name
        self.diameter = diameter
        self.price = price
        self.slices = slices
    def myfunc(self):
        print("Your " +  self.name + " pizza has a diameter of " + str(self.diameter) + " inches, a price of " + str(self.price) + " and " + str(self.slices) + " slices per pie")
class Pizza:
    def __init__(self, name, diameter, price, slices):
        self.name = name
        self.diameter = diameter
        self.price = price
        self.slices = slices
    def myfunc(self):
        print("Your", self.name, "pizza has a diameter of", self.diameter, "inches, a price of", self.price, "and", self.slices, "slices per pie")
from Pizza import Pizza
appetizer = Pizza("Pepperoni", 16, 10.50, 10)
appetizer.myfunc()
class Pizza:
    def __init__(self, name, diameter, price, slices):
        self.name = name
        self.diameter = diameter
        self.price = price
        self.slices = slices
    def __repr__(self):
        return "Your {} pizza has a diameter of {} inches, a price of {} and {} slices per pie".format(self.name,self.diameter,self.price,self.slices)


appetizer = Pizza("Pepperoni", 16, 10.50, 10)
print(appetizer)