相关疑难解决方法(0)

使用__init __()方法理解Python super()

我正在努力了解它的用法super().从它的外观来看,可以创建两个子类,就好了.

我很想知道以下2个孩子班级之间的实际差异.

class Base(object):
    def __init__(self):
        print "Base created"

class ChildA(Base):
    def __init__(self):
        Base.__init__(self)

class ChildB(Base):
    def __init__(self):
        super(ChildB, self).__init__()

ChildA() 
ChildB()
Run Code Online (Sandbox Code Playgroud)

python oop inheritance class super

2366
推荐指数
7
解决办法
158万
查看次数

Python中的旧样式和新样式类有什么区别?

Python中的旧样式和新样式类有什么区别?我什么时候应该使用其中一种?

python oop types class new-style-class

953
推荐指数
8
解决办法
22万
查看次数

如何检查变量是否是一个类?

我想知道如何检查变量是否是一个类(不是实例!).

我已经尝试使用该函数isinstance(object, class_or_type_or_tuple)来执行此操作,但我不知道类将具有什么类型.

例如,在以下代码中

class Foo: pass  
isinstance(Foo, **???**) # i want to make this return True.
Run Code Online (Sandbox Code Playgroud)

我试图取代" class"与??? ,但我意识到这class是python中的关键字.

python reflection

216
推荐指数
5
解决办法
14万
查看次数

所有Python类都应该扩展对象吗?

我发现以下两项工作:

class Foo():
    def a(self):
        print "hello"

class Foo(object):
    def a(self):
        print "hello"
Run Code Online (Sandbox Code Playgroud)

所有Python类都应该扩展对象吗?没有扩展对象有任何潜在的问题吗?

python inheritance

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

Python,创建对象

我正在尝试学习python,我现在正试图获得类的挂起以及如何使用实例操作它们.

我似乎无法理解这个练习题:

创建并返回其名称,年龄和专业与输入相同的学生对象

def make_student(name, age, major)
Run Code Online (Sandbox Code Playgroud)

我只是没有得到对象的含义,它们是否意味着我应该在包含这些值的函数内创建一个数组?或创建一个类,让这个函数在其中,并分配实例?(在这个问题之前,我被要求建立一个名字,年龄和内部专业的学生班)

class Student:
    name = "Unknown name"
    age = 0
    major = "Unknown major"
Run Code Online (Sandbox Code Playgroud)

python

119
推荐指数
3
解决办法
44万
查看次数

在Python 3.x中继承python的对象是必要的还是有用的?

在旧的python版本中,当你在python中创建一个类时,它可以从对象继承,这是我理解的一个特殊的内置python元素,它允许你的对象成为一个新式的对象.

那么新版本(> 3.0和2.6)呢?我用google搜索了类对象,但是得到了很多结果(显而易见的原因).任何提示?

谢谢!

python python-3.x

74
推荐指数
2
解决办法
1万
查看次数

Python只读属性

我不知道什么时候属性应该是私有的,如果我应该使用属性.

我最近读到,setter和getter不是pythonic,我应该使用属性装饰器.没关系.

但是,如果我有属性,那么不能从类外部设置但可以读取(只读属性).这个属性应该是私有的,私有的我是指下划线,就像那样self._x?如果是,那么如何在不使用getter的情况下阅读它?我现在唯一知道的方法是写

@property
def x(self):
    return self._x
Run Code Online (Sandbox Code Playgroud)

这样我可以读取属性obj.x但我无法设置它obj.x = 1所以它没关系.

但是我真的应该关心设置不能设置的对象吗?也许我应该离开它.但是我再也不能使用下划线,因为obj._x用户读取很奇怪,所以我应该使用obj.x然后再次用户不知道他不能设置这个属性.

你有什么看法和实践?

python properties private readonly python-2.7

74
推荐指数
4
解决办法
8万
查看次数

AttributeError:无法在python中设置属性

这是我的代码

N = namedtuple("N", ['ind', 'set', 'v'])
def solve()
    items=[]
    stack=[]
    R = set(range(0,8))
    for i in range(0,8):
        items.append(N(i,R,8))      
        stack.append(N(0,R-set(range(0,1)),i))
    while(len(stack)>0): 
        node = stack.pop()
        print node
        print items[node.ind]   
        items[node.ind].v = node.v
Run Code Online (Sandbox Code Playgroud)

在最后一行,我不能将items[node.ind].v值设置node.v为我想要的,并得到错误

"AttributeError: can't set attribute"
Run Code Online (Sandbox Code Playgroud)

我不知道什么是错的,但它必须是基于语法的东西,因为使用语句node.v+=1也会显示相同的错误.我是Python的新手,所以请建议一种方法来实现上述变更.

python attributes

59
推荐指数
3
解决办法
11万
查看次数

Python中类foo和类foo(对象)之间的区别

我知道这class foo(object)是一种老式的定义课程的方式.但我想更详细地了解这两者之间的区别.

python

47
推荐指数
3
解决办法
2万
查看次数

class Classname(object),Python中的'object'是什么词?

当我创建一个包含其唯一内容的模块时:

class Classname(randomobject):
    pass
Run Code Online (Sandbox Code Playgroud)

我尝试运行解释器说randomobject没有定义的模块的.py文件.

但当我这样做时:

class Classname(object):
    pass
Run Code Online (Sandbox Code Playgroud)

模块运行得很好.所以,如果object不是关键字,那么它是什么?

python object keyword

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