如果涉及方法内变量的范围,python与java是否不同?
我正在编写以下代码:如果涉及方法内变量的范围,python与java是否不同?,java,python,Java,Python,我正在编写以下代码: 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
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???您定义的变量是使用
self
关键字声明的。在java中将其视为这个
因此,当您执行self.big=self.data
时,大将成为对象的属性。因此,它可以通过对象访问
obj.attribute
和self.attribute
基本相同。在python中,您可以随时创建新属性。在python中,成员变量根本不“声明”。这个词没有意义。请注意,self.big
和self.data
是属性,而不是局部变量。您认为self
是什么意思?