如何解决带有变量与类的 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 举报,一经查实,本站将立刻删除。