【发布时间】:2018-08-24 11:37:59
【问题描述】:
我是 python 新手,不知道为什么这段代码不能运行。我正在尝试创建一个员工类并访问它并从另一个类初始化一个对象,这是类代码:
class employee:
def __init__(self):
self.__name
self.__num
def employee(self):
self.__name = "Brian"
self.__num = 40000
def employee(self, n ,x):
self.__name = n
self.__num = x
def setName(self, n):
self.__name = n
def getName(self):
return self.__name
def setNum(self, x):
self.__num = x
def getNum(self):
return self.__num
def toString(self):
res = "Name: " + self.__name
res += "\nNum: " + self.__num
这是测试代码:
import Employee
def main():
jane = Employee.employee("Jane", 40000)
brian = Employee.employee()
print(brian.toString())
print(jane.toString())
main()
【问题讨论】:
-
您正在调用对象方法,就好像它们是类方法一样。将所有初始化逻辑移到构造函数中。
-
1.修复缩进。 2.你期望
self.__name中的__init__做什么? 3. Getters 和 Setters 的使用(正如你实现的那样)在 Python 中相当少见。 4.employee方法的第二个定义覆盖了第一个。 5. 整个代码看起来像是在尝试用 Python 编写 Java。 -
这不是 Python 的方式。看看classes documentation