checkily 发表于 2018-2-22 16:16:27

python 关于类的用法,求解

有以下代码,目的是把方法a,和方法b的结果加起来,用方法c表示出来。但不知道怎样写。

class Test:

    temp=5
   
    def a(self,num1):
            return self.temp*num1
    def b(self,num2):
            return self.temp*num2
    def c(self):
            return Test.a+Test.b

结果如图:



方法c的结果为什么不是a+b呢?应该怎样改?

MSK 发表于 2018-2-22 16:31:58

首先要显示test.c的结果应该调用text.c
test.c()
其次 c这个方法里面试图将两个方法加起来, 是会引发异常的

冬雪雪冬 发表于 2018-2-22 16:34:32

试试这样写:
class Test:

    temp=5
   
    def a(self,num1):
            self.aa = self.temp*num1
            return self.aa
    def b(self,num2):
            self.bb = self.temp*num2
            return self.bb
    def c(self):
            return self.aa+self.bb

>>> test = Test()
>>> test.a(2)
10
>>> test.b(3)
15
>>> test.c()
25

浪里个狼 发表于 2018-2-22 17:17:08

返回Test中方法的结果需要实例化——加括号test.c(),由于函数a和函数b运行自身带参数,不能直接return test.a()+test.b(),可以尝试:
class Test:
      def __init__(self,temp,num1,num2):
                self.num1 = num1
                self.num2 = num2
                self.temp = temp
               
      def a(self):
                return self.temp*self.num1
      def b(self):
                return self.temp*self.num2
      def c(self):
                return self.a()+self.b()

>>> test = Test(5,2,3)
>>> test.c()
25

checkily 发表于 2018-2-23 09:03:53

明白了,谢谢
页: [1]
查看完整版本: python 关于类的用法,求解