## 面试指南

### 基础知识

1. 下面的代码会输出什么。

   ```Python
   
   list1 = [1, 2, 3, 4]
   
   list2 = [i for i in list1 if i > 2]
   print(list2)
   
   list3 = [i for i in list1 if i % 2]
   print(list3)
   
   dict1 = {x: x ** 2 for x in (2, 4, 6)}
   print(dict1)
   
   dict2 = {x: f'item{x ** 2}' for x in (2, 4, 6)}
   print(dict2)
   
   set1 = {x for x in 'hello world' if x not in 'abcdefg'}
   print(len(set1))
   ```

2. 下面的代码会输出什么。

    ```Python
   
   num = 100
   
   
   def foo():
   	num = 200
   
   
   def bar():
   	print(num)
   
   
   bar()
   foo()
   bar()
    ```

3. 如何修改下面的Python代码，才能够输出“foo in father”？

   ```Python
   
   class Father(object):
   	
   	def foo(self):
   		print('foo in father.')
   
   
   class Son(object):
   	
   	def foo(self):
   		print('foo in son.')
   
   
   obj = Son()
   obj.foo()
   ```

4. 