python - 如何将输入设置为 Python 类中的参数

标签 python class parameters

我想使用 classmain() 函数找到三角形的周长。我只需要以某种方式使输入等于类中的参数。我不知道该怎么做。

这是到目前为止的代码:

class Triangle:
    def __init__(self):
        self.__side1 = 1.0
        self.__side2 = 1.0
        self.__side3 = 1.0
    def getPerimeter(self):
        return self.__side1+self.__side2+self.__side3
    def __str__(self):
        return "side1 : "+str(self.__side1)+" side2 : "+str(self.__side2)+" side3 : "+str(self.__side3)  

def main():
    side1 = input("Enter first side: ")
    side2 = input("Enter second side: ")
    side3 = input("Enter third side: ")
    t1 = Triangle()
    print("The Perimeter of Triangle : ",t1.getPerimeter())
    print(t1)

main()

那么基本上我如何使周长​​等于输入。

self.__side1 = side1
self.__side2 = side2
self.__side3 = side3

例如,假设我输入

side1 = 4
side2 = 5
side3 = 2

那么周长应该是11

最佳答案

像这样:

class Triangle:
    def __init__(self, a, b, c):
        self.__side1 = a
        self.__side2 = b
        self.__side3 = c

    def getPerimeter(self):
        return self.__side1 + self.__side2 + self.__side3

    def __str__(self):
        return "side1 : " + str(self.__side1) + " side2 : " + str(self.__side2) + " side3 : " + str(self.__side3)  

def main():
    side1 = input("Enter first side: ")
    side2 = input("Enter second side: ")
    side3 = input("Enter third side: ")
    t1 = Triangle(int(side1), int(side2), int(side3))
    print("The Perimeter of Triangle : ", t1.getPerimeter())
    print(t1)

main()

请注意,您必须将输入转换为整数,否则您将得到'4' + '5' + '2' = '452':

t1 = Triangle(int(side1), int(side2), int(side3))

 

PS:__str__方法可以通过使用字符串格式来简化:

return "side1: {} side2: {} side3: {}".format(self.__side1, self.__side2, self.__side3) 

此外,如果您没有使用名称修饰的准私有(private)属性:

class Triangle:
    def __init__(self, a, b, c):
        self.side1 = a
        self.side2 = b
        self.side3 = c

    def getPerimeter(self):
        return self.side1 + self.side2 + self.side3

    def __str__(self):
        return "side1: {0.side1} side2: {0.side2} side3: {0.side3}".format(self) 

关于python - 如何将输入设置为 Python 类中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15811204/

相关文章:

python - 新值(value)未被保留

python - Tensorflow:如何创建 const 节点并添加到图形中?

python - 在 Windows 7 中从命令行执行 Python 脚本

c++ - 抽象类指针参数的默认值

class - 从 Cufon 字体系统中排除一些标签

python - 在 Python 正则表达式中找出捕获组的数量

python - 类可以继承 "argument"类吗? (有条件继承)

java - Eclipse 生成的方法参数具有不合理的名称

java - 时区中的 Style 参数

powershell - Powershell v2.0 动态参数可以在位置 0 吗?