如果涉及方法内变量的范围,python与java是否不同?
我正在编写以下代码:
class NewList():
def __init__(self,initial_state):
self.data = initial_state
def append(self,new_item):
self.data = self.data + [new_item]
self.big = self.data
def deppend(self,new_item):
self.data = self.data + [new_item]
self.big = self.big + [new_item]
my_list = NewList([1,2,3,4,5])
print(my_list.data)
my_list.append(6)
print(my_list.data)
print(my_list.big)
my_list.deppend(7)
print(my_list.data)
print(my_list.big)
我不认为在一个方法中声明的变量,比如数据、大等等,可以在Java中的另一个方法中使用。但是,在python中,我们可以轻松地使用它们。python方法中声明的变量是否具有全局作用域而不是具有局部作用域的java
# 1 楼答案
您定义的变量是使用
self
关键字声明的。可以把它想象成java中的this
所以当你做
self.big = self.data
的时候,大就变成了对象的属性。因此,它可以通过对象访问obj.attribute
和self.attribute
基本相同。在python中,可以随时创建新属性