草庐IT

SubClass

全部标签

python - 在 Python 3.6 中将 ABCMeta 与 __init_subclass__ 组合时出现 TypeError

我正在尝试将python3.6的新__init_subclass__功能(PEP487)与abc模块一起使用。它似乎没有用。以下代码:fromabcimportABCMetaclassInitifier:def__init_subclass__(cls,x=None,**kwargs):super().__init_subclass__(**kwargs)print('gotx',x)classAbstracted(metaclass=ABCMeta):passclassThingy(Abstracted,Initifier,x=1):passthingy=Thingy()运行时产生以

Python 打印不使用 __repr__、__unicode__ 或 __str__ 作为 unicode 子类?

Python打印在打印时没有为我的unicode子类使用__repr__、__unicode__或__str__。关于我做错了什么的任何线索?这是我的代码:使用Python2.5.2(r252:60911,2009年10月13日,14:11:59)>>>classMyUni(unicode):...def__repr__(self):...return"__repr__"...def__unicode__(self):...returnunicode("__unicode__")...def__str__(self):...returnstr("__str__")...>>>s=MyU

python - 如何确定 Django 模型中的类实例是否是另一个模型的子类?

我有一个名为BankAccount的类作为基类。我还有继承自BankAccount的CheckingAccount和SavingsAccount类。BankAccount不是抽象类,但我没有从它创建对象,只有继承类。然后,我执行这样的查询:account=BankAccount.objects.get(id=10)我如何知道帐户是CheckingAccount还是SavingsAccount?我现在的做法是这样的:checking_account=CheckingAccount.objects.get(id=account.id)如果存在,则为CheckingAccount,否则为Sa

python - list vs UserList 和 dict vs UserDict

今天编码,首选和推荐(在Python2和3中)以上哪项用于子类化?我读到引入了UserList和UserDict,因为以前list和dict不能被子类化,但既然这不再是问题,是否鼓励使用它们? 最佳答案 根据您的用例,现在您可以直接子类化list和dict,或者您可以子类化collections.MutableSequenceandcollections.MutableMapping;除了使用User*对象之外,还有这些选项。User*对象在Python3中被移动到collections模块;但是在Python2stdlib中使用这

python - 添加新实例变量的 Python set 类子类化的正确(或最佳)方法是什么?

我正在实现一个几乎与集合相同的对象,但需要一个额外的实例变量,因此我将内置集合对象子类化。确保在复制我的一个对象时复制此变量的值的最佳方法是什么?使用旧的sets模块,以下代码可以完美运行:importsetsclassFooset(sets.Set):def__init__(self,s=[]):sets.Set.__init__(self,s)ifisinstance(s,Fooset):self.foo=s.fooelse:self.foo='default'f=Fooset([1,2,4])f.foo='bar'assert((f|f).foo=='bar')但这不适用于内置的

python - 你如何在 Python 中子类化文件类型?

我正在尝试对Python中的内置file类进行子类化,以向stdin和stdout添加一些额外的功能。这是我到目前为止的代码:classTeeWithTimestamp(file):"""Classusedtoteetheoutputofastream(suchasstdoutorstderr)intoanotherstream,andtoaddatimestamptoeachmessageprinted."""def__init__(self,file1,file2):"""InitializestheTeeWithTimestamp"""self.file1=file1self.f

python - Django多表继承,如何知道哪个是模型的子类?

我在Django中遇到多表继承问题。让我们以银行账户为例。classaccount(models.Model):name=models……classaccounttypeA(account):balance=models.float…..defaddToBalance(self,value):self.balance+=valueclassaccounttypeB(account):balance=models.int….#NOTEthisdefaddToBalance(self,value):value=do_some_thing_with_value(value)#NOTEthis

python 3.7 : check if type annotation is "subclass" of generic

我试图找到一种可靠的/跨版本(3.5+)的方法来检查类型注释是否是给定泛型类型的“子类”(即从类型注释对象中获取泛型类型)。在Python3.5/3.6上,如您所料,它运行起来轻而易举:>>>fromtypingimportList>>>isinstance(List[str],type)True>>>issubclass(List[str],List)True而在3.7上,泛型类型的实例看起来不再是type的实例,因此它会失败:>>>fromtypingimportList>>>isinstance(List[str],type)False>>>issubclass(List[str

ios - 没有指定基类就定义了类?

我做过一百万次的简单继承:@classAGWindowView;@interfaceHelperView:AGWindowView我收到这个错误:Class"HelperView"definedwithoutspecifyingabaseclass.好吧,显然我正在指定一个基类。这里发生了什么?有什么方法AGWindowView不允许自己被子类化吗? 最佳答案 您需要导入在文件顶部定义AGWindowView的文件。编译器需要了解整个类,而不仅仅是它的存在。 关于ios-没有指定基类就定

ios - 没有指定基类就定义了类?

我做过一百万次的简单继承:@classAGWindowView;@interfaceHelperView:AGWindowView我收到这个错误:Class"HelperView"definedwithoutspecifyingabaseclass.好吧,显然我正在指定一个基类。这里发生了什么?有什么方法AGWindowView不允许自己被子类化吗? 最佳答案 您需要导入在文件顶部定义AGWindowView的文件。编译器需要了解整个类,而不仅仅是它的存在。 关于ios-没有指定基类就定