此检查报告声明的参数和实际参数之间的差异,以及不正确的参数(例如,重复的命名参数)和不正确的参数顺序.还分析了装饰器.
那就是PyCharm告诉我的.这是一个弱警告,所以我的代码运行正常.
import collections
var_dict = {}
var_dict = collections.OrderedDict(sorted(var_dict.items()))
Run Code Online (Sandbox Code Playgroud)
^这是有问题的代码行.我相信警告与OrderedDict电话有关.
我检查了Python 3.5 的OrderedDict文档,但我仍然感到困惑.
为什么我收到这个警告?我正在使用PyCharm Community Edition 5.0.1
如果我想改变继承方法的行为,我会这样做:
class a:
def changeMe(self):
print('called a')
class b(a):
def changeMe(self):
print('called b')
Run Code Online (Sandbox Code Playgroud)
我相信这是Python 中重写的一个例子。
但是,如果我想重载一个运算符,我会做一些非常类似的事情:
class c:
aNumber = 0
def __add__(self, operand):
print("words")
return self.aNumber + operand.aNumber
a = c()
b = c()
a.aNumber += 1
b.aNumber += 2
print(a + b) # prints "words\n3"
Run Code Online (Sandbox Code Playgroud)
我认为也许运算符方法在 python 中确实被重写了,因为我们使用可选参数进行重载,并且我们只是将其称为不符合约定的运算符重载。
但它也不可能是覆盖,'__add__' in object.__dict__.keys()因为False; 方法需要是父类的成员才能被重写(并且所有类object在创建时都继承自)。
我的理解差距在哪里?
我有这个正则表达式:
(?:.*[a-zA-Z0-9].*){3}
Run Code Online (Sandbox Code Playgroud)
我用它来查看字符串中是否至少包含3个字母数字字符.它似乎工作.
它应匹配的字符串示例:
'a3c'
'_0_c_8_'
' 9 9d '
Run Code Online (Sandbox Code Playgroud)
但是,我需要它更快地工作.有没有更好的方法来使用正则表达式来匹配相同的模式?
编辑:我最终使用这个正则表达式为我的目的:
(?:[^a-zA-Z0-9]*[a-zA-Z0-9]){3}
Run Code Online (Sandbox Code Playgroud)
(不需要修饰符)
我的PyCharm有问题.在我将Python从3.3.5更新到3.4之后,我在PyCharm中遇到了以下形式的恼人错误:
from multiprocessing import Queue, Process
Run Code Online (Sandbox Code Playgroud)
PyCharm强调Queue并Process在红色和示出了一个未解决的引用.代码实际上在命令行和PyCharm内都运行良好.对于这些类,代码完成似乎也被打破了.
我怀疑有问题PYTHONPATH,但我不确定如何解决它.
系统详细信息:通过Homebrew,Pycharm 3.1.1安装的Mac OS X 10.9.2,Python 3.4
我正在尝试pylearn2使用RBM预训练训练多层人工神经网络.我稍微修改了一个名为run_deep_trainer的脚本,该脚本包含在pylearn2\pylearn2\scripts\tutorials\deep_trainer中.我想要一个4层网,其中前3个是500 GaussianBinaryRBM,最后一个是mlp.Softmax层.
这是我创建的脚本:
from pylearn2.models.rbm import GaussianBinaryRBM
from pylearn2.models.softmax_regression import SoftmaxRegression
from pylearn2.models.mlp import Softmax
from pylearn2.training_algorithms.sgd import SGD
from pylearn2.costs.autoencoder import MeanSquaredReconstructionError
from pylearn2.termination_criteria import EpochCounter
from pylearn2.datasets.dense_design_matrix import DenseDesignMatrix
from pylearn2.energy_functions.rbm_energy import GRBM_Type_1
from pylearn2.blocks import StackedBlocks
from pylearn2.datasets.transformer_dataset import TransformerDataset
from pylearn2.costs.ebm_estimation import SMD
from pylearn2.training_algorithms.sgd import MonitorBasedLRAdjuster
from pylearn2.train import Train
from optparse import OptionParser
import numpy
def get_dataset_timitConsSmall():
print('loading timitConsSmall dataset...')
template = \
"""!obj:pylearn2.datasets.timitConsSmall.timit.TIMIT { …Run Code Online (Sandbox Code Playgroud) 这是我正在编写的Python东西中的一行正则表达式:
m = re.match(r"{(.+)}", self.label)
Run Code Online (Sandbox Code Playgroud)
据我所知,它工作正常。
无论如何,我的问题是关于第一个双引号之前的r字符。我从来没有真正质疑过它。但是为什么在那里呢?目的是什么?
python ×3
python-3.x ×3
pycharm ×2
regex ×2
collections ×1
javascript ×1
macos ×1
oop ×1
overriding ×1
pylearn ×1
syntax ×1
theano ×1