草庐IT

super_package

全部标签

Python super() 继承和需要的参数

考虑:classParent(object):defaltered(self):print"PARENTaltered()"classChild(Parent):defaltered(self):print"CHILD,BEFOREPARENTaltered()"super(Child,self).altered()#whataretheargumentsneeded?WhyChildandself?print"CHILD,AFTERPARENTaltered()"在Python2.7中,为什么必须将Child作为参数传递给super()调用?使用super而不是让它工作的确切复杂性是

python - 将参数传递给父类(super class)构造函数而不在子类构造函数中重复它们

classP(object):def__init__(self,a,b):self.a=aself.b=bclassC(P):def__init__(self,c):P.__init__()self.c=cobj=C(a,b,c)#wanttoinstantiateaCwithsomethinglikethis我想定义C类对象而不重写C的构造函数中的所有P类构造函数参数,但是上面的代码没有'似乎工作。执行此操作的正确方法是什么?澄清:这个想法是为了避免将父类的构造函数参数放在子类的构造函数中。只是重复太多了。我所有的父类和子类都有很多构造函数要接受的参数,因此一次又一次地重复它们不是很

python - 我可以更改现有的 virtualenv 以忽略全局站点包吗? (就像新的 --no-site-package 一样)

我可以使用“--no-site-package”创建一个忽略全局站点包的新virtualenv。是否可以更改现有的virtualenv(在没有“--no-site-package”的情况下创建)也忽略全局站点包?(因此它的工作方式就像最初是使用“--no-site-package”创建的一样。)提前致谢,塞巴斯蒂安 最佳答案 我想你所要做的就是创建一个名为no-global-site-packages.txt的空文件并将其放入virtualenv的python2.x文件夹(例如,lib/python2.6/,一个包含所有模块的)。然

python - 为 super 用户以外的用户排除 Django 管理中的字段

我有一个带有PermissionsMixin的简单MyUser类。user.is_superuser仅对super用户等于True。我希望能够在我的admin.py中执行与此类似的操作:ifrequest.user.is_superuser:fieldsets=((None,{'fields':('email','password')}),('Permissions',{'fields':('is_admin','is_staff')}),('Place',{'fields':('place',)}),('Importantdates',{'fields':('last_login',

多重继承中的Python self和super

在RaymondHettinger在PyCon2015的演讲“Superconsideredsuperspeak”中,他解释了在多重继承上下文中使用Python中的super的优势。这是Raymond在演讲中使用的示例之一:classDoughFactory(object):defget_dough(self):return'insecticidetreatedwheatdough'classPizza(DoughFactory):deforder_pizza(self,*toppings):print('Gettingdough')dough=super().get_dough()p

python - 类型错误 : Super does not take Key word arguments?

首先,这是我的代码:classEnemy():def__init__(self,name,hp,damage):self.name=nameself.hp=hpself.damage=damagedefis_alive(self):"""Checksifalive"""returnself.hp>0classWildBoar(Enemy):def__init__(self):super(WildBoar,name="WildBoar",hp=10,damage=2).__init__()classMarauder(Enemy):def__init__(self):super(Marau

python - 调用重写的方法,父类(super class)调用重写的方法

此代码抛出异常,AttributeError,"wtf!",因为A.foo()正在调用B.foo1(),它不应该调用A.foo1()吗?我怎样才能强制它调用A.foo1()(A.foo()中的任何方法调用都应该调用A.*)classA(object):deffoo(self):printself.foo1()deffoo1(self):return"foo"classB(A):deffoo1(self):raiseAttributeError,"wtf!"deffoo(self):raiseAttributeError,"wtf!"deffoo2(self):super(B,self)

python 3 : super() raises TypeError unexpectedly

来自Java,我在理解继承、抽象类、静态方法和Python中OO编程的类似概念时遇到了一些困难。我有一个表达式树类的实现,给定(简化)#GenericnodeclassclassNode(ABC):@abstractmethoddefto_expr(self):pass@staticmethoddefbracket_complex(child):s=child.to_expr()returnsifisinstance(child,Leaf)orisinstance(child,UnaryOpNode)else"("+s+")"#Leafclass-usedforvaluesandvar

Python: super 和 __init__() 与 __init__( self )

答:super(BasicElement,self).__init__()乙:super(BasicElement,self).__init__(self)A和B有什么区别?我遇到的大多数示例都使用A,但我遇到了一个问题,即A没有调用父__init__函数,但B调用了。为什么会这样?在什么情况下应该使用哪些? 最佳答案 您不需要执行第二种形式,除非BasicElement类的__init__以某种方式接受参数。classA(object):def__init__(self):print"InsideclassAinit"classB

python - 当我尝试安装 virtualenv 时,是什么导致了这个错误? IO错误 : [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/virtualenv.py'

我正在尝试使用以下命令安装虚拟环境:pipinstallvirtualenv但我收到以下错误:IOError:[Errno13]Permissiondenied:'/Library/Python/2.7/site-packages/virtualenv.py'我该如何解决这个问题? 最佳答案 乍一看,您似乎需要管理员权限才能在您的系统上安装软件包。尝试以管理员身份或您的操作系统同等身份启动pip。 关于python-当我尝试安装virtualenv时,是什么导致了这个错误?IO错误:[E