看看这个。 请注意,类B重写A的a()方法。 In [1]: class A(object): …: def __init__(self): …: self.a() …: def a(self): …: print "Aa()" …: …: In [2]: class B(A): …: def __init__(self): …: super(B, self).__init__() …: def a(self): …: print "Ba()" …: …: In [3]: b = B() Ba() 那里没有惊喜。 现在,看看这个。 请注意,现在被覆盖的方法是__a() 。 In [7]: class A(object): …: def __init__(self): …: […]
我想限制一个数字在一定范围内。 目前,我正在做以下工作: minN = 1 maxN = 10 n = something() #some return value from a function n = max(minN, n) n = min(maxN, n) 这保持在minN和maxN ,但它看起来不是很好。 我怎么能做得更好? PS:仅供参考,我正在使用Python 2.6。
似乎应该已经被问过数百次(双关都是好玩的),但我只能find四舍五入的function。 我如何四舍五入整数,例如: 130 -> 200 ?
我打字得到一个销售额(通过input)乘以定义的销售税(0.08),然后打印总金额(销售税时间销售金额)。 我遇到这个错误。 任何人都知道什么是错的或有什么build议? salesAmount = raw_input (["Insert sale amount here \n"]) ['Insert sale amount here \n']20.99 >>> salesTax = 0.08 >>> totalAmount = salesAmount * salesTax Traceback (most recent call last): File "<pyshell#57>", line 1, in <module> totalAmount = salesAmount * salesTax TypeError: can't multiply sequence by non-int of type 'float'
我在python 3中有以下代码: class Position: def __init__(self, x: int, y: int): self.x = x self.y = y def __add__(self, other: Position) -> Position: return Position(self.x + other.x, self.y + other.y) 但是我的编辑(PyCharm)说参考位置不能被parsing(在_add__方法中)。 我应该如何指定我期望的返回types是Positiontypes? 编辑:我认为这实际上是一个PyCharm问题。 它实际上在其警告中使用了信息,并且代码完成 但是纠正我的错误,并且需要使用其他语法。
import collections data = [ {'firstname': 'John', 'lastname': 'Smith'}, {'firstname': 'Samantha', 'lastname': 'Smith'}, {'firstname': 'shawn', 'lastname': 'Spencer'}, ] new_data = collections.defaultdict(list) for d in data: new_data[d['lastname']].append(d['firstname']) print new_data 这是输出: defaultdict(<type 'list'>, {'Smith': ['John', 'Samantha'], 'Spencer': ['shawn']}) 这里是模板: {% for lastname, firstname in data.items %} <h1> {{ lastname }} </h1> <p> {{ firstname|join:", " }} </p> […]
我不确定在什么题目下完全思考这个问题,编码高尔夫似乎是适当的,如果有点不确定。 我知道一些Python的理解,但他们似乎很难'读'。 我看到它的方式,理解可能会完成相同的代码如下: for i in range(10): if i == 9: print('i equals 9') 这段代码比现在的理解更容易阅读,但是我注意到你不能在一行中有两个':'…这也带给我了… 我的问题: 有什么办法可以把下面的例子变成一行。 try: if sam[0] != 'harry': print('hello', sam) except: pass 像这样的东西会很棒: try: if sam[0] != 'harry': print('hellp', sam) except:pass 但是我又遇到了冲突的':'我也想知道是否有办法尝试 (或类似的东西)除了,似乎完全没有意义,我需要除了:通过在那里。 它是一个浪费线。 谢谢你的input…这里有一个笑脸:D
我有一个pandas数据框: arrays = [['Midland', 'Midland', 'Hereford', 'Hereford', 'Hobbs','Hobbs', 'Childress', 'Childress', 'Reese', 'Reese', 'San Angelo', 'San Angelo'], ['WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS','WRF','MOS']] tuples = list(zip(*arrays)) index = pd.MultiIndex.from_tuples(tuples) df = pd.DataFrame(np.random.randn(12, 4), index=arrays, columns=['00 UTC', '06 UTC', '12 UTC', '18 UTC']) 从这个打印df的表看起来像这样: 我想为“MOS”行中的所有值着色一定的颜色,并为左侧的两个索引/标题列以及顶部标题行着色,而不是其余的具有值的单元格。 任何想法,我可以做到这一点?
我用pip install <library-name>成功安装了一个库。 但是,当我尝试导入它时,python引发ImportError: No module named <library-name> 。 为什么我得到这个错误,我怎样才能使用已安装的库?
我使用itertools.product来生成长度为13的4个元素的所有可能的变化。4和13可以是任意的,但是,实际上,我得到4 ^ 13个结果,这是很多的。 我需要结果作为一个Numpy数组,目前做到以下几点: c = it.product([1,-1,np.complex(0,1), np.complex(0,-1)], repeat=length) sendbuf = np.array(list(c)) 有了一些简单的剖析代码,它看起来像第一行几乎是瞬间的,而转换到列表然后Numpy数组需要大约3个小时。 有没有办法让这个更快? 这很可能是我忽视的一些事情。 谢谢!