zyj1214 发表于 2022-3-31 21:23:27

关于print()函数和class类的问题?

本帖最后由 zyj1214 于 2022-3-31 21:24 编辑

class x():
    def __init__(self,a,b):
      self.k=a
      self.k1=b
    def a(self):
      a=3
      b=5
      x2=b-a
      print("a函数:",x2)
    def b(self):
      x1=self.k+self.k1
      print("b函数",x1)
    def c(self):
      x2=self.k*self.k1
      return x2
    def d(self):
      i=1+1
      print(self.k)
    def e(self):
      print(self.k1)
i=7
i1=3
a=x(i,i1)
a.b()
print(a.b())
#打印结果
b函数 10    #为什么这里没有默认的返回值None
b函数 10    #而这里用print(a.b())会有默认的返回值None,我想知道原因?
None
>>>

isdkz 发表于 2022-3-31 21:28:35

print("b函数",x1) 是函数的执行过程, 得到的返回值是函数的执行结果,

你的函数没有 return,所以默认返回了 None,print(a.b()) 会将函数的返回值打印出来。

而 a.b() 不会看到函数的返回值。

zyj1214 发表于 2022-3-31 21:35:05

isdkz 发表于 2022-3-31 21:28
print("b函数",x1) 是函数的执行过程, 得到的返回值是函数的执行结果,

你的函数没有 return,所以默认 ...

print(a.b())#有什么办法不让返回值打印出来吗?小白,不太懂!!

isdkz 发表于 2022-3-31 21:38:59

zyj1214 发表于 2022-3-31 21:35
print(a.b())#有什么办法不让返回值打印出来吗?

没有办法,它一定会打印表达式的值,也就是你要么用 a.b(),

要么在函数里面不要打印,将值返回来用print(a.b()),有多个返回值用 print(*a.b())

class x():
    def __init__(self,a,b):
      self.k=a
      self.k1=b
    def a(self):
      a=3
      b=5
      x2=b-a
      print("a函数:",x2)
    def b(self):
      x1=self.k+self.k1
      return "b函数",x1
    def c(self):
      x2=self.k*self.k1
      return x2
    def d(self):
      i=1+1
      print(self.k)
    def e(self):
      print(self.k1)
i=7
i1=3
a=x(i,i1)
#a.b()
print(*a.b())

malgave 发表于 2022-4-5 17:40:19

只看到10
页: [1]
查看完整版本: 关于print()函数和class类的问题?