【python – 在类上覆盖dict()】教程文章相关的互联网学习教程文章

python – 为什么类的主体在定义时被执行?【代码】

与函数相反,类的主体在定义时执行:class A(object):print 'hello'日期:hello为什么会这样?它与@classmethod / @staticmethod方法和类属性有关吗?解决方法:当Python首次导入模块时,一切都在模块级执行.函数体(和生成器表达式主体)在这里是例外,而不是规则. Python执行所有操作以创建模块中包含的对象;就像Python中的所有东西一样,类是对象,函数也是如此. 类主体使用单独的代码对象的唯一原因是因为类主体在单独的命名空间中执行...

为什么我们在Python类中使用__init__?【代码】

我无法理解类的初始化. 它们有什么意义,我们如何知道它们包含哪些内容?在类中编写需要不同类型的思考而不是创建函数(我想我可以创建函数,然后将它们包装在一个类中,这样我就可以重用它们.这会起作用吗?) 这是一个例子:class crawler:# Initialize the crawler with the name of databasedef __init__(self,dbname):self.con=sqlite.connect(dbname)def __del__(self):self.con.close()def dbcommit(self):self.con.commit()或者...

python – 在类__init __()中获取实例名称【代码】

参见英文答案 > Getting the name of a variable as a string 15个在python中构建一个新的类对象时,我希望能够根据类的实例名创建一个默认值,而不需要传递额外的参数.我怎么能做到这一点?这是我正在尝试的基本伪代码:class SomeObject():defined_name = u""def __init__(self, def_name=None):if def_name == None:def_name = u"%s" % (<INSTANCE NAME>)self.defined_name = def_nameThisObj...

python类中的变量范围【代码】

声明类中的变量(函数外部):所有类函数都可以访问它(基本上是一个公共变量) 在类中的函数内声明一个变量:只有该函数可以访问它(它在该函数范围内) 在类中的函数内声明一个带有self(变量名)的变量:所有类函数都可以访问它(这与全局(变量名)有什么不同?) 并且由于没有私有/受保护,所以一切都是公共的,因此可以从课堂外访问从课堂内部访问的所有内容. 我应该知道还有其他细微差别吗,还是我几乎得到了它?解决方法:由于您的问题中的...

PyThon3类的基本使用【代码】

代码:class Person:def __init__(self, name, age, sex):self.name = nameself.age = ageself.sex = sexdef desc(self):print("name:{},age:{},sex:{}".format(self.name,self.age,self.sex))if __name__ == __main__:person1 = Person("Jack",18,"man")person2 = Person("Tom",20,"man")person3 = Person("Rose",18,"woman")person1.desc()person2.desc()person3.desc()运行结果:name:Jack,age:18,sex:man name:Tom,age:20,sex:...

python类的特殊方法(魔法方法)【代码】【图】

在python的类声明中,有很多类似于__xx__格式的方法,比如说__len__(),这表示在特定的条件下会调用该方法,当然也可以直接调用,现总结一些常用的如下: 1.__len__(),对类对象调用len(obj)的时候会调用该方法,一般用来返回长度,这也是为什么可以用len()去获取列表,字符串等的长度的原因 2.__call__(),把类对象当成函数来调用时触发 3.__repr__,打印对象的时候触发,一般用来给出一些详细的类信息 4. __getitem__和__se...

在容易混淆的Python类(如OS和SYS)中命名的原因是什么?

我注意到,与Python相关的大量问题是关于人们搞乱Sys -class,OS类和没有类.例如,容易混淆的是:os.open(“something”),open(“something”)和sys.open(“something”).我还没有理解类命名背后的原因,也许它只是一个演变. >我想知道他们为什么用现在的名字创作?>是否因为类中有FD而命名?>是否因为某些类需要特殊权限而命名?>命名设计解决方案的程度如何? 如果你不能回答这个问题,请随意提出一些好的助记符来记住这些类并区分它们...

python – 类初始化时的解引用变量【代码】

这是我初始化类字典的代码:class Directory:def __init__(self, **kwds):self.__dict__.update(kwds) obj = Directory(name=dict())在上面的例子中,键是名称,可以使用以下方法访问:obj .__ dict __.[‘name’]或obj.name Q1.如何使用键值作为变量的值来初始化类字典? 代码应该看起来像:name = 'bin' obj = Directory(name=dict()) #here I want the variable `name` to be replaced by its value i.e. `bin`问.还有其他最佳实施...

python – 类可变性【代码】

我从考试中得到了下面的代码,我不明白为什么你第一次做f2 = f1,做f1.set()改变f2但是之后设置f1 = Foo(“Nine”,“Ten” )根本不会改变f2.如果有人知道为什么请向我解释.非常感谢! 码:class Foo():def __init__(self, x=1, y=2, z=3):self.nums = [x, y, z]def __str__(self):return str(self.nums)def set(self, x):self.nums = xf1 = Foo() f2 = Foo("One", "Two")f2 = f1 f1.set(["Four", "Five", "Six"]) print f1 print f2f...

在Python类中使用鼠标事件回调【代码】

我想写一个程序,它以最简单的形式打开一个窗口,显示使用OpenCV捕获网络摄像头并打印鼠标光标悬停在终端窗口上的坐标.为此,我想使用回调函数.我的问题是这个回调函数似乎没有运行.运行程序时我没有收到任何错误消息,但是当我将光标悬停在相机窗口上时似乎没有任何反应. 我怀疑造成这种情况的原因可能是我的回调函数在CallBack类中,并且cv.SetMouseCallback无法访问它或其他东西.我是OpenCV和回调函数的新手,所以对于我的问题可能是什...

python – 类中的Numpy数组赋值【代码】

我使用Python 3.2.3与NumPy 1.6.1.如果有人能解释我在尝试访问(以两种不同的方式)NumPy数组的元素时NumPy做了什么,我将非常感激. 码:import numpy as npclass MyClass:def __init__(self,q):self.coord = qself.firstel = q[0]self.secondel = q[1:2]q = np.array([10,20]) # numpy array my_object = MyClass(q) # object of MyClassprint('original','q:',q,' / coord:',my_object.coord,' / 2elements:',my_object.firstel,...

Python类如何引用其子类之一或其实例?【代码】

Python类A的__new__方法是否可以引用A的子类的(常量)实例? 为了说明(激励?)这个问题,下面是Perl中类似Lisp的列表的玩具实现. Lisp列表通常以递归方式定义为一对(aka cons),其第一个元素是某个任意Lisp对象,其第二个元素是列表.为了避免无限递归,Lisp有一个名为nil的哨兵常量,它被定义为一个列表.因此,nil是一个列表,(cons 3 nil)是一个列表,(cons 3(cons 1 nil))是一个列表等等(尽管最后两个例子更常见的是(3)和(3 1) , 分别). 我...

Python类是否可以访问成员,但不能从类的实例中访问?【代码】

所以我不是来自计算机科学背景,我在谷歌搜索/搜索正确的术语来回答这个问题.如果我有一个Python类,其类变量对象如下:class MyClass(object):objects = NonepassMyClass.objects = 'test' print MyClass.objects # outputs 'test'a = MyClass() print a.objects # also outputs 'test'类的类和实例都可以访问对象变量.我知道我可以像这样更改实例值:a.objects = 'bar' print a.objects # outputs 'bar' prin...

为什么声称一个python类可以“更好”地实现为字典和一些函数?

我在回答问题Python progression path – From apprentice to guru时看到了这条指令.9. Annoy your cubicle mates every time they present you with a Python class. Claim it could be “better” implemented as a dictionary plus some functions. Embrace functional programming.但我不明白这一点.这与函数式编程有什么关系?解决方法:这在“Python进程路径”中的原因在于它反映了一种认识,即Python类只是函数和dicts的语法糖...

Python类中的魔法方法之 __slots__【代码】

在类中每次实例化一个对象都会生产一个字典来保存一个对象的所有的实例属性,这样非常的有用处,可以使我们任意的去设置新的属性。 每次实例化一个对象python都会分配一个固定大小内存的字典来保存属性,如果对象很多的情况下会浪费内存空间。 可通过__slots__方法告诉python不要使用字典,而且只给一个固定集合的属性分配空间 class Foo(object):__slots__ = ("x","y","z")def __init__(self,x,y):self.x = xself.y = yself.z = N...