对Python来说很新鲜。我正在尝试用一个简单的方法来创建一个类,这个方法可以增加示例的薪水。当我在Swimyter Notebook中编写和运行此代码时,它工作得很好,但在Visual Studio中就不行了。代码如下:
class Employee():
def __init__ (self,first_name,last_name,pay):
self.first_name = first_name
self.last_name = last_name
self.pay = pay
self.email = first_name + "." + last_name + "@company.com"
def fullname(self):
return f"{self.first_name} {self.last_name}"
def apply_raise(self):
self.pay = int(self.pay*1.04)
employee_1.pay = 50000
print (employee_1.pay)
employee_1.apply_raise()
print (employee_1.pay)
从编译器输出的结果如预期:50000 52000
VS:
>>> employee_1.apply_raise()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Employee' object has no attribute 'apply_raise'
>>> print (employee_1.pay)
50000
类似的问题也发生在另一段代码中,我客观地定义了员工的电子邮件,但VS说这些变量没有定义(这让我想--是不是我把VS的配置搞砸了?):
Employee_1.first_name = "John"
Employee_1.last_name = "Doe"
Employee_1.email = "[email protected]"
Employee_1.pay = 50000
Employee_2.first_name = "Test"
Employee_2.last_name = "User"
Employee_2.email = "[email protected]"
Employee_2.pay = 60000
print(Employee_1.email)
print(Employee_2.email)
来自编译器的输出:
[email protected]
[email protected]
VS:
NameError: name 'Employee_1' is not defined
>>> print(Employee_2.email)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Employee_2' is not defined
1条答案
按热度按时间hsvhsicv1#
我使用VS,就好像它是一个笔记本电脑,并运行相同的快捷方式来运行代码(例如。Shift + Enter运行单元格),显然不要这样做。在每行代码的右上角的“play”三角形中运行。此外,不要运行代码行,然后删除它们,并在此基础上运行其他行,你可能会认为你删除的代码没有影响,这是不正确的。我知道这是一个基本的愚蠢的问题,但只是从这里开始。
LhasaDad提到的解决方案--我在Python中定义了employees变量,但在VS中没有,这就是为什么代码在其中一个中运行,而在另一个中没有运行。