鱼C论坛

 找回密码
 立即注册
查看: 1522|回复: 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  属性的值,你应该这样修改:
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 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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` 函数将其输出。

求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

求评分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

求评分

刚回到家  咋评分呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

大佬,你可太懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我只有收藏、分享和淘贴的功能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 17:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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