相关疑难解决方法(0)

存储和检索Python列表中的对象

我是python的新手,很难在Python中使用数组或列表来存储和访问对象.

我尝试过这样的事情:

class NodeInfo:
    def __init__(self, left, value, right):
        self.l = left
        self.r = right
        self.v = value

tree[0] = NodeInfo(0,1,2)

tree[0].l = 5
tree[0].r = 6
tree[0].v = 7
Run Code Online (Sandbox Code Playgroud)

当我尝试为变量赋值或尝试从变量中读取时,我收到以下错误:

tree[0] = NodeInfo(0,1,2)
NameError: name 'tree' is not defined
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者是否有不同的方法从Python中的数组或列表中分配和读取对象.

python arrays store list object

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

Python新手:面向对象编程的难题

  1. 这两个类声明有什么区别?"对象"做什么?

    class className(object):
        pass 
    
    class className:
        pass 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行以下代码时,为什么会出现此错误:"不带参数(给定1个)"

    class Hobbs():
        def represent():
            print "Hobbs represent!"
        represent = classmethod(represent)
    
    Hobbs.represent()   
    
    Run Code Online (Sandbox Code Playgroud)
  3. 为什么"Foo.class_foo()"没有给出错误,即使我没有将参数传递给函数.

    class Foo(object):
        @staticmethod
        def static_foo():
        print "static method"
        @classmethod
        def class_foo(cls):
            print "Class method. Automatically passed the class: %s" % cls      
    Foo.static_foo()
    Foo.class_foo()
    
    Run Code Online (Sandbox Code Playgroud)
  4. 运行以下代码时,为什么会出现此错误?

    class Foo(object):  
        def static_foo():
            print "static method"
            static_foo = staticmethod(static_foo)
        def class_foo(cls):
                print "Class method. Automatically passed the class: %s" % cls
        class_foo = classmethod(class_foo)  
    Foo.static_foo()
    Foo.class_foo()
    
    Run Code Online (Sandbox Code Playgroud)

"TypeError:unbound方法static_foo()必须使用Foo实例作为第一个参数调用(没有取而代之)"

python oop

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

isinstance运算符在继承时返回false

我创建了2个类A和B,B继承了A.我使用isinstance检查b是否为a类型,并返回false.不应该是真的吗?

class a():pass

class b(a):pass

print isinstance(b,a)
Run Code Online (Sandbox Code Playgroud)

python

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

如何在Python中引用在类下声明的变量?

我是Python的新手,我使用的是Python 2.7.x.

我对Python中的命名空间有疑问:

class Team():
    x = 2 
    def p(self):
        print x 

a = Team()
a.p()
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它说global x is not defined.不应该x属于Team对象吗?我的目标是创建一个Team类,其中x有2默认值.

在Java中它将是这样的:

class Team()
{
    int x = 2;
}

a = new Team();
Run Code Online (Sandbox Code Playgroud)

python namespaces python-2.x

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

python3中定义的__new__在哪里?

在Python 2中:

>>> class A:
...  pass
... 
>>> A.__new__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: class A has no attribute '__new__'
>>> class A(object):
...  pass
... 
>>> A.__new__
<built-in method __new__ of type object at 0x1062fe2a0>
Run Code Online (Sandbox Code Playgroud)

结论:object包含__new__和子类继承该方法.

在Python 3中:

>>> class A:
...  pass
... 
>>> A.__new__
<built-in method __new__ of type object at 0x100229940>
Run Code Online (Sandbox Code Playgroud)

__new__是我们类中定义的方法,没有任何继承.这是如何运作的?__new__"来自哪里"?

python

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

面向对象的python构造函数和类方法

#!/usr/bin/env python

class SportsCar(object):

        def __init__(self,make,colour):
                self.make = make
                self.colour = colour
                self.horn = "BEEEEEEEEPPPPPPP"

        def honk(self):
                #now we can make some noise!
                print self.make,'  ',self.colour,'  ',self.horn
                print "Done "


mycar = SportsCar('Honda','silver')
#print mycar.make 
#print mycar.colour

print mycar.honk()


print "Good Bye!!"
Run Code Online (Sandbox Code Playgroud)

上面代码的输出如下.

Honda    silver    BEEEEEEEEPPPPPPP
Done 
None
Good Bye!!
Run Code Online (Sandbox Code Playgroud)

输出的前两行

Honda    silver    BEEEEEEEEPPPPPPP
Done
Run Code Online (Sandbox Code Playgroud)

这是由mycar.honk()打印的.

我也理解第4行

Good Bye!!
Run Code Online (Sandbox Code Playgroud)

我不明白第三行的"无"来自哪里?有人可以解释一下吗?

另一个相关的问题

这些变化之间有什么区别

class SportsCar:
Run Code Online (Sandbox Code Playgroud)

class SportsCar(object):
Run Code Online (Sandbox Code Playgroud)

我一直在不同的地方看到这两个问题.

python methods class

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

Python类继承有问题

我正在学习一个Programming类,并且对于其中一个测试,我需要创建一个继承自已创建的类的类.这是老师教我做的代码,但它似乎没有起作用:

class Intern(Employer):
    def __init__(self, last_name, first_name, address, phone, email, end_date):
        Employer(last_name, first_name, address, phone, email)
        self.end_date=end_date
    def intern_info(self):
        self.print_info()
        print self.end_date
Run Code Online (Sandbox Code Playgroud)

python inheritance class

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

标签 统计

python ×7

class ×2

arrays ×1

inheritance ×1

list ×1

methods ×1

namespaces ×1

object ×1

oop ×1

python-2.x ×1

store ×1