在接受虚拟参数的类中创建方法



我对面向对象编程有点陌生,想更多地探索它。我这里有一个字典"a",它有一定的键值对。所以我想做的是构建一个通过这个字典的方法,只接受那些值为 True

的值。我

尝试创建一个接受值的类,我有检查字典中值的逻辑,但不明白如何继续从中创建方法

a = {"A": true, "B":

false, "C": true}

class Check:
    def __init__(self, country, A, B):
         self.country = country
         self.A = A
         self.B = B
    def countrycheck(self):
        Result = {}
        for i in self.country:
            if self.country[i] == True:
                Result.update({i: True})
        return Result 

得到了结果,但不是无法表达我真正想要的东西。我希望它运行如下内容:

trial = Check(a, b, c)

所以运行这个应该给我一个字典 = {"A":真,"C":真}。a 是我检查字典中国家/地区值的地方,我也希望 b 和 c 参数在那里。我尝试使用它们,但它给了我这个错误 - "b 未定义">

函数init((总是在启动类时执行。

使用 init(( 函数为对象属性赋值,或在创建对象时必须执行的其他操作。 在您的情况下,def __init__(self, country, A, B):中的 A,B 没有意义

注: self 参数是对类的当前实例的引用,用于访问属于该类的变量。

对象方法:

对象还可以包含方法。对象中的方法是属于该对象的函数。

如果你想在类

的定义之外使用类的方法(或属性(,你将这样做:

trial = Check(a)
trial.countrycheck()

例:

class A(object):
    def foo(self):
        print ('Foo')
    def bar(self, argument):
        print ('Bar ', argument)
a = A()
a.foo() #prints 'Foo'
a.bar('Arg!') #prints 'Bar Arg!'

您的代码应如下所示:

class Check:
    def __init__(self, country):
         self.country = country
    def countrycheck(self):
        Result = {}
        for i in self.country:
            if self.country[i] == True:
                Result.update({i: True})
        return Result

a = {"A": True, "B": False, "C": True}
trial = Check(a)
print (trial.countrycheck())

输出:

{'A': True, 'C': True}

最新更新