属性错误:“X”对象在Visual Studio中没有属性“Y”,但在Windows Notebook中工作正常

mwngjboj  于 2023-10-23  发布在  Windows
关注(0)|答案(1)|浏览(121)

对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
hsvhsicv

hsvhsicv1#

我使用VS,就好像它是一个笔记本电脑,并运行相同的快捷方式来运行代码(例如。Shift + Enter运行单元格),显然不要这样做。在每行代码的右上角的“play”三角形中运行。此外,不要运行代码行,然后删除它们,并在此基础上运行其他行,你可能会认为你删除的代码没有影响,这是不正确的。我知道这是一个基本的愚蠢的问题,但只是从这里开始。
LhasaDad提到的解决方案--我在Python中定义了employees变量,但在VS中没有,这就是为什么代码在其中一个中运行,而在另一个中没有运行。

相关问题