草庐IT

python - Python 中简单事物的类或闭包

我想了解更多关于作为类与闭包实现的“带内存”函数。考虑一个(非常)简单的例子:defconstant(value):def_inner():returnvaluereturn_innerx=constant(5)print(x())对比classConstant():def__init__(self,value):self._value=valuedef__call__(self):returnself._valuey=Constant(5)print(y())这些中的任何一个的性能和内存消耗是否更好?使用slot会让类(class)表现更好?谢谢,埃尔南Ps.-我知道在这个极其简单的

python - NLTK 中是否有任何用于文本规范化和规范化的类?

大量的NLTK文档和示例专门用于词形还原和词干提取,但在规范化等问题上却很少:将所有字母转换为小写或大写删除标点符号将数字转化为文字删除重音符号和其他变音符号扩展缩写删除停用词或“太常见”的词文本规范化(tumor=tumour,it's=itis)请指出我在NLTK中的哪个位置进行挖掘。欢迎任何用于上述目的的NLTK等价物(JAVA或任何其他)。谢谢。UPD。我已经为文本到语音的目的编写了一个文本规范化的Python库https://github.com/soshial/text-normalization.它也可能适合你。 最佳答案

python - 如何从 Python 中的类内部访问类方法

我想在Python中创建一个管理所有静态成员的类。这些成员应该在类的定义期间已经被初始化。由于稍后需要重新初始化静态成员,我会将这段代码放入一个类方法中。我的问题:如何从类内部调用这个类方法?classTest():#staticmemberx=None#HEREIWOULDLOVETOCALLSOMEHOWstatic_init!#initializestaticmemberinclassmethod,sothatitcanbe#reinitializedlateronagain@classmethoddefstatic_init(cls):cls.x=10感谢任何帮助!提前致谢,沃

python - Python标准库中的类JavaScript对象?

很多时候,我发现自己想要一个简单的Python中的“转储”对象,它的行为类似于JavaScript对象(即,可以使用.member或[访问其成员'成员']).通常我会把它贴在.py的顶部:classDumbObject(dict):def__getattr__(self,attr):returnself[attr]def__stattr__(self,attr,value):self[attr]=value但这有点蹩脚,而且该实现至少存在一个错误(虽然我不记得它是什么)。那么,标准库中是否有类似的东西?并且,为了记录,简单地实例化object是行不通的:>>>obj=object()>

python - 如何在 Python 中实现可下标的类(可下标的类,不可下标的对象)?

要实现一个可下标的对象很简单,只需在这个对象的类定义中实现__getitem__。但现在我想实现一个可下标的类。比如我想实现这段代码:classFruit(object):Apple=0Pear=1Banana=2#________________________________#/Someotherdefinitions,\#\makeclass'Fruit'subscriptable./#--------------------------------#\^__^#\(oo)\_______#(__)\)\/\#||----w|#||||printFruit['Apple'],Fr

python - 只为要排序的类实现 __lt__ 是否安全?

假设我的ClassA的实例最终会出现在一个数据结构中,并且我们知道sorted()将被调用。调用sorted()的是别人的代码,所以我不能指定排序函数,但我可以在ClassA上实现任何合适的方法。在我看来def__lt__(self,other):就足够了,我不需要实现其他五个左右的方法(qt、eq、le、ge、ne)。这就够了吗? 最佳答案 PEP8建议反对这种做法。我也建议不要使用它,因为它是一种脆弱的编程风格(对小的代码修改不健壮):请考虑使用functools.total_ordering类装饰器来完成这项工作:@total

python - pickle 动态生成的类?

我正在使用type()动态生成最终将被pickle的类。问题是un-pickling过程需要类的定义才能重新构造已经被pickle过的对象。这就是我卡住的地方。我不知道如何以某种方式提供unpickler一种从动态生成的类生成实例的方法。任何提示表示赞赏。谢谢!这是一个问题的例子:>>>classFoo(object):...pass>>>g=type('Goo',(Foo,),{'run':lambdaself,x:2*x})()>>>cPickle.dumps(g)PicklingError:Can'tpickle:attributelookup__main__.Goofailed

python - 确定给定的类属性是否为属性,Python 对象

这一切都在标题中。下面是一个例子:classA(object):my_var=5defmy_method(self,drink='beer'):return'Ilike%s'%drink@propertydefmy_property(self):return'Idonotdrinkcoffee'我实例化了一个A对象,我想知道每个属性的类型以及它是否是可调用的。为此,我使用dir().obj=A()forattrindir(obj):print'Type:%s'%type(obj)print'Iscallable:%s'%callable(attr)我还必须知道属性是否是属性。我确信有办

python - 每次在 Python 中的类中是否有必要将 __init__ 作为第一个函数?

在Python中,我想知道在创建类时是否需要包含__init__作为第一个方法,如下例所示:classExampleClass:def__init__(self,some_message):self.message=some_messageprint"NewClassinstancecreated,withmessage:"printself.message另外,为什么我们使用self来调用方法?谁能详细解释一下“self”的用法?另外,为什么我们在Python中使用pass语句? 最佳答案 不,没必要。例如。classA(obje

python - 动态选择要继承的类

我的Python知识有限,以下情况需要一些帮助。假设我有两个类A和B,是否可以在Python中(从概念上)执行以下操作:importosifos.name=='nt':classnewClass(A):#classbodyelse:classnewClass(B):#classbody所以问题是我想创建一个类newClass以便它将根据平台差异从不同的基类继承,这可以在Python中实现吗?谢谢。 最佳答案 您可以使用conditionalexpression:classnewClass(Aifos.name=='nt'elseB)