鱼C论坛

 找回密码
 立即注册
查看: 2304|回复: 6

[已解决]不是默认值属性是吗

[复制链接]
发表于 2023-6-19 18:18:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
>>> 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,才给出值
我和其它编程语言是学混了吗
最佳答案
2023-6-19 18:25:37
你的理解基本正确。在Python中,如果你希望一个方法(在其他语言中也可能被称为函数或子程序)返回一个值,你需要使用  return  关键字。

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

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

  4.     def getsize(self):
  5.         return self.size
复制代码


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

  1. d = D()
  2. print(d.getsize())  # 输出: 10
复制代码


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

使用道具 举报

发表于 2023-6-19 18:25:37 | 显示全部楼层    本楼为最佳答案   
你的理解基本正确。在Python中,如果你希望一个方法(在其他语言中也可能被称为函数或子程序)返回一个值,你需要使用  return  关键字。

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

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

  4.     def getsize(self):
  5.         return self.size
复制代码


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

  1. d = D()
  2. print(d.getsize())  # 输出: 10
复制代码


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

使用道具 举报

发表于 2023-6-19 18:27:26 | 显示全部楼层
在Python中,类中的属性和方法都可以通过`self.`来访问。当我们执行d.getsize()时,`getsize`方法中的`self.size`并没有被返回或被打印出来,这是因为函数缺少返回语句或者打印语句。

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

  7. d = D()
  8. print(d.getsize()) # 输出 10
复制代码

或者使用print语句:

  1. class D:
  2.     def __init__(self, size=10):
  3.         self.size = size
  4.         
  5.     def getsize(self):
  6.         print(self.size)

  7. d = D()
  8. d.getsize() # 输出 10
复制代码


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

求最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

求评分
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-19 20:36:46 | 显示全部楼层
sfqxx 发表于 2023-6-19 18:28
https://fishc.com.cn/thread-229812-1-1.html

求评分

刚回到家  咋评分呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

大佬,你可太懂了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-19 20:44:09 | 显示全部楼层
nvli123 发表于 2023-6-19 20:36
刚回到家  咋评分呀

我只有收藏、分享和淘贴的功能
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 21:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表