Python元编程 - 在Python中实现重载

避免重复的代码,避免复制粘贴一些逻辑的时候,我们使用了函数。那么避免复制粘贴定义一些类似的,或者较为相像的类的时候,我们就需要一个生成类的方法,在Python中,我们使用的方法就是元类(MetaClass)。

元编程的应用(1)函数重载

在 Python 中,如果我们想要实现一个可以接受多种参数的函数,我们通常的方法都是在函数体里判断参数的个数,和各个的类型。这个办法很麻烦,并且也不容易维护,我也很希望可以像 C++ 一样可以简单的使用同样的名字去重载函数。利用元编程就可以做到。

我想做到像下面这样:

class Fuck:

def shit(self, x: int, ......

matplotlib基础

Introduction

matplotlib是一个很好用的可以画2D图的Python模块。它提供了很方便进行可视化数据的方案。下面是对matplotlib的使用进行了一个简单的记录。

Simple plot

import numpy as np

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)

C,S = np.cos(X), np.sin(X)

这里的X是一个数组,里面有256个数,范围是\([-\pi,\pi]\)。接下来的C和S是分别是cos值和sin值。

基础绘图

import numpy as np

imp......

C++ zip实现

最近心血来潮想在C++里实现一些像在python里一样好用的小组件,主要是希望充分发挥C++11里for循环的威力。在完成了enumerate之后,在zip的完成上用了比较久的时间。

在这里记录下来自己对zip的简单实现。

主要就用了模板递归,结合了一些C++11的新特性完成的。

#pragma once

namespace twistoy {

template<typename first, typename... last>

class zip_iterator {

public:

using value_type = std::tuple<type......