小编Yug*_*amo的帖子

Python中的继承和init方法

我是python的初学者.我无法理解继承和__init__().

class Num:
    def __init__(self,num):
        self.n1 = num

class Num2(Num):
    def show(self):
        print self.n1

mynumber = Num2(8)
mynumber.show()
Run Code Online (Sandbox Code Playgroud)

结果: 8

还行吧.但我换成Num2

class Num2(Num):
    def __init__(self,num):
        self.n2 = num*2
    def show(self):
        print self.n1,self.n2
Run Code Online (Sandbox Code Playgroud)

结果: Error. Num2 has no attribute "n1".

在这种情况下,如何Num2访问n1

python inheritance init

70
推荐指数
3
解决办法
8万
查看次数

__init__和Python中的参数

我想理解__init__Python中构造函数的参数.

class Num:
    def __init__(self,num):
        self.n = num
    def getn(self):
        return self.n
    def getone():
        return 1
myObj = Num(3)

print myObj.getn()
Run Code Online (Sandbox Code Playgroud)

结果:3

我称之为getone()方法:

print myObj.getone()
Run Code Online (Sandbox Code Playgroud)

结果:错误'getone()'不带参数(1given).

所以我更换:

def getone():
    return 1
Run Code Online (Sandbox Code Playgroud)

def getone(self):
    return 1
Run Code Online (Sandbox Code Playgroud)

结果:1这没关系.

getone()方法不需要参数.

我是否必须使用毫无意义的论点?

python oop class instance

33
推荐指数
2
解决办法
9万
查看次数

嵌套列表和计数()

我想得到x出现在嵌套列表中的次数.

如果列表是:

list = [1, 2, 1, 1, 4]
list.count(1)
>>3
Run Code Online (Sandbox Code Playgroud)

还行吧.但如果列表是:

list = [[1, 2, 3],[1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)

如何获得1次出现的次数?在这种情况下,4.

python list

23
推荐指数
4
解决办法
3万
查看次数

如何扩展Image类?

我想在PIL中扩展"Image"类.

#module Image
def open(file): ...
class Image:
    def method1:...
    def method2:...

#module myOriginal
from Image import Image
class ExtendedImage(Image):
    def method3:...

#module test
import myOriginal
im = myOriginal.open("picture.jpg")
Run Code Online (Sandbox Code Playgroud)

结果:Error.myOriginal没有属性"打开".

如何在不重写open()方法的情况下扩展Image类?

python inheritance python-imaging-library

6
推荐指数
1
解决办法
1288
查看次数

嵌套列表和For循环

考虑一下:

list = 2*[2*[0]]
for y in range(0,2):
  for x in range(0,2):
    if x ==0:
      list[x][y]=1
    else:
      list[x][y]=2
print list
Run Code Online (Sandbox Code Playgroud)

结果:

[[2,2],[2,2]]
Run Code Online (Sandbox Code Playgroud)

为什么结果不是[[1,1],[2,2]]?

python

3
推荐指数
1
解决办法
1603
查看次数

[Google App Engine]如何使用filter()?

我开始使用Google App Engine了,我想制作像twitter这样的东西.

class User(db.Model):
  account = db.StringProperty()
  password = db.StringProperty()
  name = db.StringProperty()

class Message(db.Model):
  user = db.ReferenceProperty()
  text = StringProperty()
  created = DateTimeProperty(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

如何获取特定人的推文?我试试

que = db.Query(Message).order('-created').filter("user['account'] = ",'Tom')
Run Code Online (Sandbox Code Playgroud)

但这是错误的.我可以访问用户属性吗?

python google-app-engine filter

1
推荐指数
1
解决办法
878
查看次数