![](/img/trans.png)
[英]why am I not able to convert string type column to date format in pyspark?
[英]Why am I able to access the class variable of type list and change its contents but not of type string?
我有以下代码:
class Employee:
orgName = 'Credit Cards' # class variable
def __init__(self, name):
self.name = name # instance variable
Sam = Employee('Sam')
print(Sam.orgName) # 'Credit Cards'
Sam.orgName = 'Loans'
print(Sam.orgName) # 'Loans'
print(Employee.orgName) # 'Credit Cards'
所以在上面的例子中,我明白当我将一些东西分配给 Sam.orgName 时。 Python 实际上正在创建一个名为“orgName”的实例变量,因此 class 变量“orgName”保持不变。
但是后来我尝试了下面的代码,这是我感到困惑的地方:
class Employee:
orgName = 'Credit Cards' # class variable
hobbies = ['Hiking']
def __init__(self, name):
self.name = name # instance variable
Sam = Employee('Sam')
print(Sam.hobbies) # 'Hiking'
Sam.hobbies.append('Reading')
print(Sam.hobbies) # 'Hiking', 'Reading'
print(Employee.hobbies) # 'Hiking', 'Reading'
当 class 变量应该遵循 Sam.hobbies 应该创建列表实例变量的第一个代码片段的行为时,我如何能够在此处修改变量?
修改字符串成员和列表成员的方式有所不同。 最初, Employee
static 成员由实例Sam
共享(当Sam
启动时,它引用任何Employee
引用)。
在列表情况下,您就地修改了此列表,这改变了两者的列表,因为它们指向相同的 object。在字符串情况下,您更改了Sam
的变量赋值,以便此实例的orgName
版本不再指向与Employee
class 相同的东西。 请注意,字符串在 python 中是不可变的,因此无论如何您都无法以相同的方式进行就地修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.