找到 34423 篇文章 关于编程

你认为垃圾回收器可以跟踪所有 Python 对象吗?

Rajendra Dharmkar
更新于 2019-07-30 22:30:21

124 次浏览

Python 使用两种技术来清理垃圾。一种是引用计数,它影响所有对象,但无法清理直接或间接相互引用的对象。这就是实际的垃圾回收器发挥作用的地方:python 有 gc 模块,它搜索其已知对象中的循环引用。只有可能成为引用循环一部分的对象才会参与循环 gc。因此,例如,列表可以,但字符串不行;字符串不引用任何其他对象。所有 Python 类及其实例都会自动被循环 gc 跟踪。在 C 中定义的类型 ... 阅读更多

有 Python 对象检查器吗?

Gireesha Devara
更新于 2023-08-23 19:09:55

338 次浏览

在 python 中,没有内置或正常的函数充当对象检查器。但是,我们可以使用 type()、help()、dir()、vars() 等函数或 inspect 等模块来查找任何对象的属性、特性和方法。我们还有其他函数,如 id()、getattr()、hasattr()、globals()、locals()、callable() 可用于查看对象内部以了解其属性和方法。在这里,我们将使用一些内置函数来检查对象。在此之前,我们将创建一个简单的 python 类及其对象,以便在本文中引用。以下是定义 ... 阅读更多

如何在 C/C++ 中包装 Python 对象?

Gireesha Devara
更新于 2023-08-24 16:01:06

370 次浏览

为了在 Python 中包装现有的 C 或 C++ 功能,有许多可用的选项,它们是:使用 PyMethodDef 和 Py_InitModule 手动包装、SWIG、Pyrex、ctypes、SIP、Boost.Python 和 pybind1。使用 SWIG 模块让我们取一个 C 函数,然后使用 SWIG 将其调整为 python。SWIG 代表“简单包装器接口生成器”,它能够将 C 包装在各种语言中,如 python、PHP、TCL 等。示例考虑 example.c 文件中简单的阶乘函数 fact()。/* 文件:example.c */ #include // 计算阶乘 int fact(int n) ... 阅读更多

如何使用 Pymongo 将自定义 Python 对象编码为 BSON?

Rajendra Dharmkar
更新于 2020-06-16 11:29:35

335 次浏览

要使用 Pymongo 将自定义 python 对象编码为 BSON,您必须编写一个 SONManipulator。从文档中:SONManipulator 实例允许您指定 PyMongo 自动应用的转换。from pymongo.son_manipulator import SONManipulator class Transform(SONManipulator):   def transform_incoming(self, son, collection):     for (key, value) in son.items():       if isinstance(value, Custom):         son[key] = encode_custom(value)       elif isinstance(value, dict): # 确保我们递归进入子文档         son[key] = self.transform_incoming(value, collection)     return son   def transform_outgoing(self, son, collection):     for (key, value) in son.items():       ... 阅读更多

如何在 Python 中知道对象是否具有属性?

Gireesha Devara
更新于 2023-08-29 03:41:46

22K+ 次浏览

Python 是一种面向对象的编程语言,这里的属性被称为对象的特性。通过使用不同的方法,我们可以检查对象是否具有属性。要检查对象是否包含特定属性,我们可以使用 hasattr() 方法和 getattr() 方法。或者,如果我们想要获取所有现有属性,则可以使用 dir() 方法。(详细了解 Python 目录:Python 目录教程)首先创建一个带有两个属性的虚拟 Python 类,然后将其分配给一个对象,它将在本文中引用。class DummyClass(): ... 阅读更多

如何在 MySQL 中插入 Python 对象?

Rajendra Dharmkar
更新于 2020-01-28 06:11:54

828 次浏览

假设服务器上存在名为“test”的 MySQL 数据库,并且还创建了一个名为 employee 的表。假设该表有五个字段 fname、lname、age、gender 和 salary。假设我们想将如下定义的包含记录数据的元组对象插入 Msql 数据库中。t1=('Steven', 'Assange', 21, 'M', 2001)要建立 MySQL 和 Python 3 之间的接口,您需要安装 PyMySQL 模块。然后,您可以使用以下语句设置连接import PyMySQL # 打开数据库连接 db = PyMySQL.connect("localhost", "root", "", "test" ) # 使用 cursor() 准备游标对象 ... 阅读更多

如何在 Mongodb 中插入 Python 对象?

Rajendra Dharmkar
更新于 2020-06-16 07:36:08

628 次浏览

您可以在 Python 中使用 pymongo 库连接到 MongoDB 数据库,并使用它在 Python 中插入、更新、删除等对象。该库开箱即用地支持 Python 日期时间对象,您无需执行任何特殊操作即可使用 PyMongo 在 Mongo 中插入日期。例如,示例from pymongo import MongoClient # 这将尝试连接到默认端口和主机上的 MongoDB client = MongoClient() db = client.test_database # 将给定的字典插入 objects 集合:result = db.objects.insert_one({"last_modified": datetime.datetime.utcnow()}) print("对象已插入!")输出这将给出输出 - 对象已插入!注意 - 始终使用 ... 阅读更多

如何在保存到缓存之前压缩 Python 对象?

Rajendra Dharmkar
更新于 2019-07-30 22:30:21

302 次浏览

有时我们需要在将 Python 对象(列表、字典、字符串等)保存到缓存之前压缩它们,并在从缓存读取后解压缩它们。首先,我们需要确保我们需要压缩对象。我们应该检查数据结构/对象是否太大,以至于无法未压缩地放入缓存中。将存在压缩/解压缩的开销,我们必须将其与缓存本身带来的收益进行权衡。如果我们确实需要压缩,那么我们可能希望使用 zlib。如果我们要使用 zlib,我们可能希望尝试不同的压缩 ... 阅读更多

如何在 C++ 中使用 Python 对象?

Rajendra Dharmkar
更新于 2020-02-10 10:49:28

739 次浏览

这是一个示例,其中一个简单的 Python 对象被包装和嵌入。我们为此使用 .c,c++ 有类似的步骤 - class PyClass(object):     def __init__(self):         self.data = []     def add(self, val):         self.data.append(val)     def __str__(self):         return "Data: " + str(self.data) cdef public object createPyClass():     return PyClass() cdef public void addData(object p, int val):     p.add(val) cdef public char* printCls(object p):     return bytes(str(p), encoding = 'utf-8')我们使用 cython pycls.pyx 编译(对 c++ 使用 --cplus)以生成 ... 阅读更多

如何在Python类中获取函数的返回值?

Rajendra Dharmkar
更新于 2023年9月9日 23:05:46

13K+ 浏览量

以下代码展示了如何在Python类中获取函数的返回值。示例class Score():     def __init__(self):         self.score = 0         self.num_enemies = 5         self.num_lives = 3     def setScore(self, num):         self.score = num     def getScore(self):          return self.score     def getEnemies(self):         return self.num_enemies     def getLives(self):         return self.num_lives         s = Score() s.setScore(9) print s.getScore() print s.getEnemies() print s.getLives()输出9 5 3

广告