小编Dan*_*iel的帖子

我如何确定在python类中的__init__函数中放置什么?

因此,我了解在Python中定义类时如何使用init。但是,对于在init函数中放置什么内容,或者根本不应该使用它,我感到困惑。例如:

在这里,我让用户定义实例化类时的概念:

class Fruit(object):
    def __init__(self, concept):
        self.concept = concept
Run Code Online (Sandbox Code Playgroud)

但是我也可以这样做,并且用户可以自己更改concept属性:

class Fruit(object):
    def __init__(self):
        self.concept = "I am a fruit"
Run Code Online (Sandbox Code Playgroud)

或者我可以完全放弃init函数:

class Fruit(object):
    concept = "I am a fruit"
Run Code Online (Sandbox Code Playgroud)

在每个示例中,我都可以这样更改概念属性

test = Fruit()
test.concept = 'Whatever I want'
Run Code Online (Sandbox Code Playgroud)

所以我不确定为什么首先要使用init函数。似乎只能方便地预先定义所有属性。

此外,我如何知道在init函数中放置什么,以及仅在init外定义什么?

python class object

6
推荐指数
1
解决办法
1277
查看次数

将具有混合固有类型的字符串列表转换为固有类型

所以我有一个字符串列表,每个字符串都有固有的类型.

mixedbag = ['True', '2.7', '3', 'Ninety']
Run Code Online (Sandbox Code Playgroud)

我想将其转换为如下所示:

[True, 2.7, 3, 'Ninety']
Run Code Online (Sandbox Code Playgroud)

我想到的是创建一个大的try/except链来评估列表中的每个项目,但这并不像处理这个问题的pythonic方式.

python types list

3
推荐指数
1
解决办法
51
查看次数

如何将python字典转换为具有故意重复值的列表

我有一个以下形式的字典:

{'string1': 3, 'string2': 4, 'string3':2}
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个列表,其中键的实例是其对应的值对的函数.像这样:

['string1','string1','string1','string2','string2','string2','string2','string3','string3']
Run Code Online (Sandbox Code Playgroud)

我正在努力解决这个问题,因为我觉得应该有一个优雅的解决方案.这是我到目前为止所拥有的:

t2 = [dictionary[key]*key for key in dictionary.keys()]
Run Code Online (Sandbox Code Playgroud)

但这产生了以下混乱:

['string2string2string2string2', 'string3string3', 'string1string1string1']
Run Code Online (Sandbox Code Playgroud)

python dictionary

2
推荐指数
1
解决办法
57
查看次数

标签 统计

python ×3

class ×1

dictionary ×1

list ×1

object ×1

types ×1