nvli123 发表于 2023-6-19 18:18:30

不是默认值属性是吗

>>> class D:
...   def __init__(self,size=10):
...         self.size=size
...   def getsize(self):
...         self.size
...
>>> d=D()
>>> d.getsize()

执行d.getsize()没有返回size的值,是python中self.size没有默认值属性(self.size.value)吗
而需要使用return 或者print,才给出值
我和其它编程语言是学混了吗

isdkz 发表于 2023-6-19 18:25:37

你的理解基本正确。在Python中,如果你希望一个方法(在其他语言中也可能被称为函数或子程序)返回一个值,你需要使用return关键字。

在你给出的例子中, getsize方法没有return关键字,所以它实际上是在 "无声"地结束,不返回任何值。如果你希望getsize方法返回size属性的值,你应该这样修改:

class D:
    def __init__(self, size=10):
      self.size = size

    def getsize(self):
      return self.size


现在,如果你创建一个D类的实例并调用getsize方法,它将返回size属性的值:

d = D()
print(d.getsize())# 输出: 10


这与很多其他编程语言(如Java,C++等)的行为是一致的:如果你希望函数返回一个值,你需要使用相应的关键字(通常是return )。在Python中,并没有self.size.value这样的默认值属性。你可以直接通过self.size访问实例的size属性,不需要.value 。

sfqxx 发表于 2023-6-19 18:27:26

在Python中,类中的属性和方法都可以通过`self.`来访问。当我们执行d.getsize()时,`getsize`方法中的`self.size`并没有被返回或被打印出来,这是因为函数缺少返回语句或者打印语句。

更具体地说,在 `getsize` 方法中,`self.size`只是一个变量的引用,它的值需要显式地返回或打印才能看到。所以你需要使用return或者print的方式来将`size`属性值返回,例如:
class D:
    def __init__(self, size=10):
      self.size = size
      
    def getsize(self):
      return self.size

d = D()
print(d.getsize()) # 输出 10
或者使用print语句:

class D:
    def __init__(self, size=10):
      self.size = size
      
    def getsize(self):
      print(self.size)

d = D()
d.getsize() # 输出 10

总之,在 Python 中,如果你想要得到函数内部某个变量的值,必须显式地使用`return` 或`print` 函数将其输出。

求最佳答案{:10_254:}

sfqxx 发表于 2023-6-19 18:28:19

isdkz 发表于 2023-6-19 18:25
你的理解基本正确。在Python中,如果你希望一个方法(在其他语言中也可能被称为函数或子程序)返回一个值, ...

https://fishc.com.cn/thread-229812-1-1.html

求评分

nvli123 发表于 2023-6-19 20:36:46

sfqxx 发表于 2023-6-19 18:28
https://fishc.com.cn/thread-229812-1-1.html

求评分

刚回到家咋评分呀{:10_333:}

nvli123 发表于 2023-6-19 20:38:52

isdkz 发表于 2023-6-19 18:25
你的理解基本正确。在Python中,如果你希望一个方法(在其他语言中也可能被称为函数或子程序)返回一个值, ...

大佬,你可太懂了

nvli123 发表于 2023-6-19 20:44:09

nvli123 发表于 2023-6-19 20:36
刚回到家咋评分呀

我只有收藏、分享和淘贴的功能{:10_250:}
页: [1]
查看完整版本: 不是默认值属性是吗