MST

星途 面试题库

面试题:Visual Basic自定义数据类型及变量作用域管理

请定义一个包含姓名(字符串类型)、年龄(整型)和工资(双精度浮点型)的自定义数据类型`Employee`。然后在一个模块中声明两个该类型变量`emp1`和`emp2`,要求`emp1`在整个应用程序中都能访问,`emp2`只能在模块内部的某个特定函数中访问。请写出具体代码,并解释变量作用域相关的原理。
17.4万 热度难度
编程语言Visual Basic

知识考点

AI 面试

面试题答案

一键面试
# 定义Employee数据类型
class Employee:
    def __init__(self, name, age, salary):
        self.name = name
        self.age = age
        self.salary = salary

# 声明全局变量emp1
emp1 = Employee("Alice", 30, 5000.0)

def specific_function():
    # 声明局部变量emp2,只能在这个函数内部访问
    emp2 = Employee("Bob", 25, 4000.0)
    print(f"emp2 name: {emp2.name}, age: {emp2.age}, salary: {emp2.salary}")

# 变量作用域原理:
## emp1
1. **全局变量**:`emp1`定义在模块的顶级,没有在任何函数内部。因此,它具有全局作用域。在整个应用程序的任何地方,只要导入了包含这个定义的模块,就可以访问`emp1`。例如,在其他模块中可以通过`模块名.emp1`的方式访问(前提是模块正确导入)。
## emp2
1. **局部变量**:`emp2`定义在`specific_function`函数内部,它的作用域仅限于这个函数内部。一旦函数执行完毕,`emp2`所占用的内存空间就会被释放。在函数外部,无法直接访问`emp2`,试图访问会导致`NameError`。