Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在接受伪参数的类中创建方法_Python_Python 3.x_Class_Methods - Fatal编程技术网

Python 在接受伪参数的类中创建方法

Python 在接受伪参数的类中创建方法,python,python-3.x,class,methods,Python,Python 3.x,Class,Methods,我对面向对象编程有点陌生,希望对它进行更多的探索。我这里有一个字典“a”,它有一些键值对。所以我想做的是构建一个方法,它遍历这个字典,只取那些有值的值为真 我试着创建一个接受值的类,我有逻辑检查dict中的值,但不知道如何从中创建方法 a={a:真,B:假,C:真} 我得到了结果,但却无法表达我真正想要的。我想让它运行如下内容: trial = Check(a, b, c) 所以运行这个应该给我一个dict={“a”:True,“C”:True}。 a是我从dict中检查国家值的地方,我还希望

我对面向对象编程有点陌生,希望对它进行更多的探索。我这里有一个字典“a”,它有一些键值对。所以我想做的是构建一个方法,它遍历这个字典,只取那些有值的值为真

我试着创建一个接受值的类,我有逻辑检查dict中的值,但不知道如何从中创建方法

a={a:真,B:假,C:真}

我得到了结果,但却无法表达我真正想要的。我想让它运行如下内容:

trial = Check(a, b, c)
所以运行这个应该给我一个dict={“a”:True,“C”:True}。
a是我从dict中检查国家值的地方,我还希望b和c参数在那里。我尝试使用它们,但它给了我一个错误——“b未定义”

函数init(),总是在初始化类时执行

使用init()函数为对象属性指定值,或为创建对象时需要执行的其他操作指定值。在您的案例中,
def\uuu init\uuuu(self,country,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}

这看起来甚至不像是一门课。如果你把它变成一个函数,它会更有意义。你打算把
b
变成“b”吗?它在哪里定义?
trial=Check(a,b,c)
只提供类
Check
的实例。要获得结果,您应该运行
trial.countrycheck()
{'A': True, 'C': True}