下面这段简单的代码在Python 3.6中给出了一个错误(但在2.7中可以):
class XY:
pre = ''
z = [pre + a for a in ['x', 'y']]
# NameError: name 'pre' is not defined.
当我将相同的代码放在函数中而不是类中时:def XY(): ...,它可以工作。当我将列表理解放在一个常规循环中时,它也能正常工作。Python2.7使用的代码与3.6中的错误代码相同!
你知道从列表理解内部访问局部类变量有什么问题吗?
我正在尝试理解类属性__value和下面python类中的值之间的区别。
class WithClass ():
def __init__(self, val = "Bob"):
self.__value = val
def my_func(self):
print(self.value)
a = WithClass()
print(a.__value)
b = WithClass("Sally")
print(b.__value))
上面的代码给出了错误"AttributeError: WithClass
尝试理解Python是如何创建一些类的
class A:
pass
class B(A):
pass
class A(B):
pass
a = A()
由于循环依赖,我预计会出现一些错误,但它没有抱怨。
A.__mro__打印(__main__.A, __main__.B, __main__.A, object)
因此,看起来有两个名为A的类。我原以为第二个声明会覆盖第一个声明。
有人能详细解释一下这里发生了什么吗?第一个A类是否完全可达?
我在调用$dog2方法greet()时出现了一个错误,这是一个未定义的变量,但我不能理解我在哪里犯了错误。请帮帮我:)
<?php
class Dog{
public $numLegs=4;
public $name;
public function __construct($name){
$this->name=$name;
}
public function bark(){
我有一个由类B和C继承的基类A,我试图从它们中设置一个实例变量。基类A的方法使用这样的变量,如下所示。
class A(object):
def foo(self):
print(self.value)
class B(A):
value = "B"
class C(A):
value = "C"
>>> b = B()
'B'
>>> c = C()
'C'
我知道函数foo只会在执行过程中进行评估,只要我不直接从A实例调用foo就行了。然而,我无
我不明白为什么Python会抛出以下错误,尽管我的简单类首先声明了类变量,然后每次实例化新对象时都会增加它的值:
r = Robot("Rob")
population += 1
UnboundLocalError: local variable 'population' referenced before assignment.
有人能帮我理解一下我在这里做错了什么吗?当然,在修改局部变量之前,我应该先创建局部变量(在本例中是类变量),那么为什么会出现问题呢?
class Robot:
''' Represents a rob
在类定义过程中,定义为字典的类变量用于构造第二个字典类变量,第二个字典类变量是从第一个字典中缩减的子集,如下所示:
class C(object):
ALL_ITEMS = dict(a='A', b='B', c='C', d='D', e='E')
SUBSET_X = {k: v for k, v in ALL_ITEMS.items() if k in ('a', 'b', 'd')} # (this works)
SUBSET_Y
我想学习Python中的类的基础知识,却被卡住了。我声明了类变量和实例变量的相同名称,以便更好地理解不同之处,但当我在类方法中使用类变量时,它显示错误,如NameError:全局名称'a‘未定义。谁能告诉我,如果类变量和实例变量具有相同的名称,如何在类内和类外声明类变量?下面给出了代码,因此输出中出现错误
class abc:
a=10
def __init__(self,a):
self.a=a
def mod1(self):
global a
a=5
self.a=105
def mod
目前,我正在将codebase从python2切换到python3,遇到了一个我不太理解的问题:
class MyClass:
var1 = True
var2 = tuple([i for i in [1, 2,] if var1])
上述课程在python2中运行得相当愉快,但在python3中却失败了。
我把它改成:
class MyClass:
var1 = True
var2 = tuple(i for i in [1, 2,] if var1)
因为我的理解是清单理解是多余的,不管它不起作用。经过一些调查,似乎list/tuple理解的行为方式,我不
我正在学习Python作用域,但无法理解程序,以下是我的代码 a = "bat"
class Test():
a = "ball"
b = [a for i in range(2)]
e = lambda: a
@staticmethod
def f():
return a
g = lambda a=a: a
d = a
print(Test.b) # prints ["bat","bat"]
print(Test.e()) #
以下代码
class Foo:
bar=[sum( i^j for i in range(9) )for j in range(9)]
加薪
NameError:未定义全局名称“j”
在我的Python2.7.14空闲,以及一个在线解释器。
如果我正确理解,sum接受可迭代作为输入。出什么问题了?
PS。
如果我用sum([ ... ])代替,就不会有错误。
如果删除外部列表,就不会出现错误。
如果第二行是在类之外执行的,则不会出现错误。
Python3 (特别是我的3.4.2空闲)不会引发错误。
当我试图在python (2.7)中执行从字符串到整数的简单类型转换时,会出现一个错误:
year = device.time[year_pos:].strip() # This is '1993'
t = int(year) # Throws exception: "UnboundLocalError: local variable 'int' referenced before assignment"
为什么?:)
请帮助我理解为什么以下不起作用。特别是,被测试类的实例属性在Python的unittest.Mock中不可见。
在下面的示例中,无法访问bar实例属性。返回的错误是:
AttributeError: <class 'temp.Foo'> does not have the attribute 'bar'
import unittest
from unittest.mock import patch
class Foo:
def __init__(self):
super().__init__(self)
se
目前,我正在将一个脚本从Python 2转换为Python 3。在调试它时,我偶然发现了代码的一部分,它们在这两个版本之间的行为是不同的。然而,我无法解释这种差异。
这里是一个复制者:
variable_1 = "x"
variable_2 = "y"
list_of_variables = ['variable_1', 'variable_2']
existing_variables = vars()
print([variable for variable in list_of_variables if variable i
我有点困惑。我在我的用户(实际上是“客户”)模型上有一个简单的方法来返回用户的订阅续订日期:
public function subscriptionRenewalDate() : string
{
$subscription = $this->subscriptions()->active()->first()->asStripeSubscription();
return Carbon::createFromTimeStamp($subscription->current_period_end)->format('F jS, Y
我使用python从.xlsm excel文件中读取数据。我有两个文件,它们几乎相同,并且保存在同一个目录中。当我给python程序一个excel表时,它正确地读取数据并解决问题。但是,对于其他excel工作表,我会得到以下错误。
(我用####写了我的名字)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
solve("updated_excel.xlsm")
File "C:\Documents and Set
我刚开始为OOPs编程,如果有人能帮我编写这段代码,那就太好了。下面的代码是python中链接列表的起始代码。
class Element(object):
def __init__(self, value):
self.value = value
self.next = None
class LinkedList(object):
def __init__(self, head=None):
self.head = head
def append(self, new_element):
current
我在模块中保存了一个已定义的函数,然后将其导入到一个新脚本中。
在此函数中,查询变量master (熊猫数据)。但是,master不是函数中的参数之一,无论脚本如何,它都是我希望访问的数据。
在我的新脚本中尝试使用上述函数时,会出现以下错误:
NameError: name 'master' is not defined
但是,当我在控制台中输入master时,它不会出现任何问题或错误。
我认为这与局部变量和全局变量有关,但我对Python并不熟悉,并且很难理解如何修复错误。