微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有变量与类的 Python 嵌套函数?

如何解决带有变量与类的 Python 嵌套函数?

带有变量的 Python 嵌套函数和带有属性方法的类有什么区别? 我在网上查过,问过程序员,仍然没有弄清楚类与包含变量和其他函数函数有何不同。

示例:

课程

class Add:
    def __init__(self):
        self.a = 5
        self.b = 7
    
    def inside_method(self):
        return (self.a + self.b)

add1 = Add()
print('sum is:',add1.inside_method())

带变量的嵌套函数

def func():
    a = 5
    b = 7
    def nested_func():
        return (a + b)
    return nested_func()
    
print('sum is:',func())

解决方法

对您的问题的评论已经是一个很好的答案。

Python 方法只是一个以 self 作为第一个参数的函数,它是定义该方法的类(的继承类)的实例。

确实,对于您的非常简单的示例,使用类几乎没有用。但是您可能熟悉 str 类的 Python 字符串:

>>> type("hello")

一个字符串有 many methods : capitalize,casefold,center,count,encode,endswith,. ..

这很方便,因为我不需要每次为要调用的每个方法都创建相同的字符串,我可以重用相同的实例:

>>> s = "hello"
>>> s.capitalize()
"Hello"
>>> s.replace("h","G")
'Gello'
>>> s.count("l")
2

更强大的是使用类实例来存储状态。 Python 字符串是不可变的,但列表不是。

>>> temperatures = [14,15,10,33]
>>> temperatures[1]
15
>>> temperatures[1] = 0
>>> temperatures
[14,33]
>>> temperatures.sort()
>>> [0,14,33]

在 Python 中实现的面向对象主要是将有状态数据与对其进行操作的函数(命名方法)耦合。它旨在简化这些通常有用的结构。

希望它澄清!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。