Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将此JavaScript代码转换为Python代码?_Javascript_Python_Function - Fatal编程技术网

如何将此JavaScript代码转换为Python代码?

如何将此JavaScript代码转换为Python代码?,javascript,python,function,Javascript,Python,Function,抱歉,我知道这可能是一个奇怪的问题,但是我制作了这个基本的JavaScript程序,我不确定我应该查找什么来知道如何将它转换为具有相同功能的python程序。我知道代码是如何工作的,但我不知道它的技术术语是什么,所以我正在努力找出如何在python中实现它。任何帮助都将不胜感激。谢谢 我不知道如何将add、access、print和size功能添加到我用Python创建的东西中。谢谢 就用吧。它是用Python编写的,所以当然您必须使用Python,但除此之外,您还可以使用Python。如果

抱歉,我知道这可能是一个奇怪的问题,但是我制作了这个基本的JavaScript程序,我不确定我应该查找什么来知道如何将它转换为具有相同功能的python程序。我知道代码是如何工作的,但我不知道它的技术术语是什么,所以我正在努力找出如何在python中实现它。任何帮助都将不胜感激。谢谢




我不知道如何将add、access、print和size功能添加到我用Python创建的东西中。谢谢

就用吧。它是用Python编写的,所以当然您必须使用Python,但除此之外,您还可以使用Python。如果你想走很长的路,那么学习Python哪一种更好,因为一旦你用Python编写了代码,你就知道如何修改它。

由于Python是一种面向对象的语言,获取对象的方法基本上是创建一个类,该类充当该对象不同实例化的蓝图/原型。因此,您翻译成python的代码可能或多或少如下所示:

(各位python专业人士,请原谅我,我不是=D)

类MyCache:
定义初始化(self,*args,**kwargs):
#在python中,最类似于javascript数组的是列表
#为了使它更具可读性,这里将“myArray”称为“U cache”
self.\u cache=[]
def添加(自我,x):
#不要尝试从空列表中弹出(),否则将引发错误
如果是自缓存:
self.\u cache.pop(0)
self.\u cache.append(x)
def访问(自,z):
#index()在python中有点怪。。。
尝试:
i=自缓存索引(z);
#我想这里不需要.slice()之类的东西,
#在python中,只能在索引处使用.pop()
self.\u cache.pop(i)
self._cache.append(z)
除ValueError作为错误外:
打印(错误)
def大小(自身,y):
#如果不确定要在此处执行什么操作,请使用初始化缓存
#特定长度的数组/列表?
self.\u缓存=[None]*y
#打印是python中的保留字。。。
def状态(自我):
打印(“当前数组为:”)
打印(自缓存)
#实例化类(例如获取缓存对象)
#然后用它做一些事情。。
cache=MyCache()
cache.add(7)
cache.status()
cache.add(10)
cache.status()
cache.add(3)
cache.status()
cache.access(3)
cache.status()

不确定这是否真的达到了预期的效果,缓存中始终只有1个值,因为
add()
方法总是会删除一个…因此,
访问
方法没有什么意义…但可能它只是您的简化示例代码?

您可以使用JS2Python此javascript代码包含
myCache
,一个对象,函数作为值。您可以使用python中的方法来创建一个类。阅读有关类和方法的内容,应该会清楚地知道如何实现这一点。到目前为止,您尝试了什么?到目前为止,我还没有尝试太多,因为我对Python比较陌生,但我会尝试JacoblRR建议的方法。是的,我肯定会尝试一下Js2Py。谢谢请注意,Js2PY创建的输出不是很可读,因此如果您确实计划将JS代码库移动到python,我建议您“正确地”(例如手动)重写它,如果您只需要“传输”它,并且您将继续使用JS进行开发,Js2PY就可以了!是的,我只发布了一些简单的东西。add方法应该移动,因此如果大小为3,则在添加时,第一个内容将被删除,其他所有内容将向下移动1,以便为新添加腾出空间。你发布的内容正是我想要的,这样我就可以查看它,并准确地了解如何做我所想象的事情。非常感谢。
var myArray = [];

var myCache = {

    add: function a(x){
        myArray.shift();
        myArray.push(x);
    },

    access: function b(z){
        var zLocation = myArray.indexOf(z);
        var temp1 = myArray.slice(0,zLocation);
        var temp2 = myArray.slice(zLocation+1, myArray.length);
        temp1 = temp1.concat(temp2);
        temp1.push(z);
        myArray = temp1;
    },

    print: function c(){
        console.log("Current array is: " + myArray);
    },

    size: function d(y){
        yArray.length = y;
    }
};

myCache.add(7);