Python面试必备:单例模式、lambda函数与类型转换解析
版权申诉
118 浏览量
更新于2024-09-07
收藏 19KB DOCX 举报
"Python经典面试题.docx"
在Python编程中,单例模式是一种设计模式,它确保类只有一个实例,并提供一个全局访问点。在提供的内容中,提到了两种实现单例模式的方法:
1. 使用元类 Singleton 实现:
```python
class Singleton(type):
def __init__(cls, name, bases, dict):
super(Singleton, cls).__init__(name, bases, dict)
cls.instance = None
def __call__(cls, *args, kw):
if cls.instance is None:
cls.instance = super(Singleton, cls).__call__(*args, kw)
return cls.instance
class MyClass(object):
__metaclass__ = Singleton
print(MyClass())
print(MyClass())
```
在这个例子中,Singleton 是一个元类,用于控制 MyClass 的实例化过程。每次尝试创建 MyClass 的新实例时,都会检查 instance 是否已经存在,如果不存在才会创建新的实例。
2. 使用装饰器 @singleton 实现:
```python
def singleton(cls):
instances = {}
def get_instance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return get_instance
@singleton
class MyClass:
pass
# 使用时不再需要调用括号,而是直接使用类名
print(MyClass)
print(MyClass)
```
在这个版本中,我们定义了一个装饰器 singleton,它会存储每个类的实例,并在需要时返回。
接下来是关于lambda函数的讨论。lambda函数是Python中的匿名函数,可以在一行内定义简单函数。它们的语法如下:
```python
lambda 参数列表: 表达式
```
例如:
```python
g = lambda x, y: x * y
```
这个lambda函数接受两个参数 x 和 y,并返回它们的乘积。lambda函数通常用于短小且简单的操作,但不宜过于复杂,因为它们的主体只能是一个表达式。
最后,Python提供了内置函数来进行类型转换。`int()`函数用于将字符串或其他类型转换为整数,如果字符串可以解析为整数,它将成功转换,否则会抛出异常:
```python
>>> int("34")
34
>>> int(" ")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ' '
```
当尝试将非数字字符串转换为整数时,会引发 `ValueError`。
这些面试题覆盖了Python中重要的设计模式、函数和类型转换概念,这些都是开发者需要熟练掌握的基本技能。理解并能灵活运用这些知识点对于Python开发人员来说至关重要。
2024-07-20 上传
2023-06-12 上传
2023-07-23 上传
2021-09-06 上传
2022-06-16 上传
2023-07-23 上传
2019-07-02 上传
2024-07-27 上传
2021-09-25 上传
huakai218
- 粉丝: 3
- 资源: 8万+
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜