我想在python中创建一个类,它应该像这样工作:
分配的数据,可能绑定到变量(例如a = exampleclass(data)
或exampleclass(data)
)
插入数据后,它应自动确定数据的某些属性,如果某些属性被填充,它将自动…
…将班级改为另一个班级
第三部分是我有问题的部分。我如何真正改变班级内部的班级?例如:
如果我有两个班级,一个是Small_Numbers
,另一个是Big_numbers
;现在我希望将small_number
小于1000的任何内容转换为a
Big_number
,反之亦然,测试代码:
a = Small_number(50)
type(a) # should return Small_number.
b = Small_number(234234)
type(b) # should return Big_number.
c = Big_number(2)
type(c) # should return Small_number.
这可能吗?
使用工厂方法是解决此问题的常用方法,
尤其是 因为实例化一个类与在Python中调用一个函数没有区别。
但是,如果您 确实 需要,可以分配给self.__class__
:
THRESHOLD = 1000
class Small(object):
def __init__(self, n):
if n < THRESHOLD:
self.n = n
else:
self.__class__ = Big
self.__init__(n)
class Big(object):
def __init__(self, n):
if n < THRESHOLD:
self.__class__ = Small
self.__init__(n)
else:
self.n = n
这按预期工作:
>>> a = Small(100)
>>> type(a)
<class 'Small'>
>>> b = Small(1234)
>>> type(b)
<class 'Big'>
>>> c = Big(2)
>>> type(c)
<class 'Small'>
如果分配给您self.__class__
似乎太奇怪了,则可以改写__new__
。该方法在调用之前__init__
被调用,它可以用来选择要实例化的类:
THRESHOLD = 1000
class Switcher(object):
def __new__(cls, n):
if n < THRESHOLD:
new_cls = Small
else:
new_cls = Big
instance = super(Switcher, new_cls).__new__(new_cls, n)
if new_cls != cls:
instance.__init__(n)
return instance
class Small(Switcher):
def __init__(self, n):
self.n = n
class Big(Switcher):
def __init__(self, n):
self.n = n
本节讨论了MySQL 5.1中DECIMAL数据类型(以及其同义类型)的特性,尤其是下述方面: ·数字的最大数。 ·存储格式。 ·存储要求。 ·对DECIMAL列上界 的非标准MySQL扩展。 在本节中,对于为较早MySQL版本编写的应用程序,在相应的地方指出了可能的不兼容性。 DECIMAL列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下: ·M是数字的最大数(
问题内容: 在Access中(使用接近2 gb的数据库工作)的设计模式下尝试将数据类型从文本更改为数字时,我始终收到“磁盘空间不足或内存不足”的错误,因此我找到了一种解决方法,基本上是通过创建一个新列,将数据类型设置为此处的数字,将旧列的内容复制到其中,删除旧列,然后将新列重命名为旧列的名称。 我听说ALTER TABLE也可以用来更改数据类型。 有人可以给我一个示例,说明如何使用ALTER TA
问题内容: 我们需要将某些列的数据类型从int更改为bigint。不幸的是,其中一些表很大,大约有7-10百万行(但不宽)。 Alter表alter列将永远保留在这些表上。有没有更快的方法来实现这一目标? 问题答案: 巧合的是,大约3个小时前,我不得不做一些非常相似的事情。该表是3500万行,它相当宽,并且花了很多时间才能做到这一点: 这就是我最终得到的结果: 这次,这些陈述几乎是即时的。(在速度
问题内容: 我想将表示为列表列表的表转换为。作为一个极其简化的示例: 将列转换为适当类型的最佳方法是什么(在这种情况下,将列2和3转换为浮点数)?有没有一种方法可以在转换为DataFrame时指定类型?还是先创建DataFrame然后遍历各列以更改各列的类型更好?理想情况下,我想以动态方式执行此操作,因为可以有数百个列,并且我不想确切指定哪些列属于哪种类型。我可以保证的是,每一列都包含相同类型的值
本文向大家介绍更改给定numpy数组的数据类型,包括了更改给定numpy数组的数据类型的使用技巧和注意事项,需要的朋友参考一下 除了python的本机数据类型外,Numpy数组还支持多种数据类型。创建数组后,我们仍然可以根据需要修改数组中元素的数据类型。用于此目的的两种方法是array.dtype和array.astype array.dtype 此方法为我们提供了数组中元素的现有数据类型。在下面
我希望用户能够手动输入将保存到数据库的日期。我的MonthType看起来像: 我的控制器看起来像: 在存储库中,我有: 当我试图保存记录我得到一个错误:一个异常发生在执行'插入到月份(名称,日期开始,日期结束,upper_limit,user_id,保留)值 (?, ?, ?, ?, ?, ?)'使用参数["2012年6月",{"date":"2012-06-01 00:00:00.000000"