相关疑难解决方法(0)

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

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

python

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

如何在没有值的情况下在Python中声明属性?

在C#我会去:

string UserName;
string Password;
Run Code Online (Sandbox Code Playgroud)

但现在,在Python中:

class User:
    UserName
    Password
Run Code Online (Sandbox Code Playgroud)

我收到一个UserName未定义的错误.没有变量我可以声明变量吗?

python class

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

Python 2.7中的旧式和新式类?

可能重复:
Python中的旧样式和新样式类

Python 2.7中新式和旧式类的当前状态是什么?我不经常使用Python,但我依旧记得这个问题.文档似乎根本没有提到这个问题:Python教程:类.我还需要担心吗?一般来说,我应该声明我的类:

class MyClass:
    pass
Run Code Online (Sandbox Code Playgroud)

要么?

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

python class new-style-class python-2.7

24
推荐指数
2
解决办法
7618
查看次数

class ClassName与类ClassName(对象)

有什么区别:

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

class ClassName:
    pass
Run Code Online (Sandbox Code Playgroud)

当我调用那些类的模块的帮助功能时,你可以阅读____builtin____.objectCLASS标题下的第一个案例.对于第二种情况,它只显示类名.这些类和/或其可能的方法之间是否存在功能差异?

(我知道它class Classname(ParentClassName)有功能用途)

python class object

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

实例是一个"对象",但类不是"对象"的子类:这怎么可能?

如果一个类的实例是一个object没有该类的子类,object怎么可能?这是一个例子:

>>> class OldStyle(): pass
>>> issubclass(OldStyle, object)
False
>>> old_style = OldStyle()
>>> isinstance(old_style, object)
True
Run Code Online (Sandbox Code Playgroud)

python subclass object instance

16
推荐指数
2
解决办法
3668
查看次数

Python迭代非序列

我有这段代码创建一个笔记并添加到笔记本中.当我运行这个时,我得到一个非序列错误的迭代.

import datetime
class Note:
    def __init__(self, memo, tags):
        self.memo = memo
        self.tags = tags
        self.creation_date = datetime.date.today()

def __str__(self):
    return 'Memo={0}, Tag={1}'.format(self.memo, self.tags)


class NoteBook:
     def __init__(self):
        self.notes = []

     def add_note(self,memo,tags):
        self.notes.append(Note(memo,tags))

if __name__ == "__main__":
    firstnote = Note('This is my first memo','example')
    print(firstnote)
    Notes = NoteBook()
    Notes.add_note('Added thru notes','example-1')
    Notes.add_note('Added thru notes','example-2')
    for note in Notes:
        print(note.memo)
Run Code Online (Sandbox Code Playgroud)

错误:

C:\Python27\Basics\OOP\formytesting>python notebook.py  
Memo=This is my first memo, Tag=example  
Traceback (most recent call last):  
  File "notebook.py", line 27, in …

python

16
推荐指数
2
解决办法
5万
查看次数

为什么有必要从Python中的对象继承子类?

我已经使用Python很长一段时间了,我仍然不确定你为什么要从子类化object.这有什么区别:

class MyClass():
    pass
Run Code Online (Sandbox Code Playgroud)

还有这个:

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

据我所知,object是所有类的基类和隐含的子类.你从明确的子类化中获得了什么吗?什么是最"Pythonic"的事情?

python

15
推荐指数
2
解决办法
2480
查看次数

Python新式类和__subclasses__函数

有人可以向我解释为什么这样有效(在Python 2.5中):

class Foo(object):
    pass

class Bar(Foo):
    pass

print(Foo.__subclasses__())
Run Code Online (Sandbox Code Playgroud)

但这不是:

class Foo():
    pass

class Bar(Foo):
    pass

print(Foo.__subclasses__())
Run Code Online (Sandbox Code Playgroud)

后者返回"AttributeError:class Foo没有属性' __subclasses__'",但我不知道为什么.我知道这与旧式和新式类有关,但我不清楚为什么会使这个功能不可用.

澄清:我希望理解为什么__subclasses__()老式的不可用,我得到的方法对于旧式的类不存在但我不知道它是什么新的样式使这些新的功能可能.

python

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

什么是对象()有用?

怎么可能呢

class EmptyClass:
    def __init__(self):
        pass

e = EmptyClass()
e.a = 123
Run Code Online (Sandbox Code Playgroud)

工作和:

o = object()
o.a = 123
Run Code Online (Sandbox Code Playgroud)

没有(AttributeError: 'object' object has no attribute 'a')而

print isinstance(e, object)
>>> True
Run Code Online (Sandbox Code Playgroud)

什么是object()好的,当你不能像这样使用它?

python class object

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

Python默认继承?

如果我在Python中定义一个类,例如:

class AClass:
   __slots__ = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

它继承了哪个类?它似乎没有继承object.

python inheritance class

10
推荐指数
2
解决办法
4584
查看次数