鱼C论坛

 找回密码
 立即注册
查看: 652|回复: 4

关于内部函数的问题

[复制链接]
发表于 2019-1-13 09:25:07 | 显示全部楼层 |阅读模式

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

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

x
以第36课的课后练习为例:
class Rectangle():
    long=5
    width=5
    def getRect(self):
        result = self.long*self.width
        return result
    def setRect(self):
        while 1:
            try:
                self.long = float(input("长度:"))
                self.width = float(input('宽度:'))
                global long,width
                break
            except ValueError:
                print('请输入数字,非其他符号')
        
    def getArea(self):
        result=self.long*self.width
        return result

我一开始的想法是既然内部函数不能影响全局函数,那就要加上一个global去声明这是一个全局变量,但是经过实测,其实加不加都一样,但是不是说内部函数不能影响全局吗,求解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-1-13 09:44:22 | 显示全部楼层
你那不是变量的事,是类属性实例属性的事
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-13 09:44:32 From FishC Mobile | 显示全部楼层
这是类的内部的内部,不是全局函数的内部
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-13 11:20:25 | 显示全部楼层
BngThea 发表于 2019-1-13 09:44
这是类的内部的内部,不是全局函数的内部

所以说类的内部的内部和函数的内部的内部是不一样的,是吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-13 12:06:40 | 显示全部楼层
你要想影响函数,就换成nonlocal。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-13 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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