在Python中创建对象时使用self

时间:2015-06-14 19:54:34

标签: python object self

我做了几个做同样事情的课程,但我还是不完全理解其中的差异,哪个最好用。此外,第4个对象不起作用。它说' NameError:name' self'没有定义'虽然我不明白出了什么问题。这就是我写的,输出是7,7,7,0:

public class LinesTabsAdapter extends FragmentPagerAdapter {
    private final List<Fragment> fragments = new ArrayList<>();
    private final List<String> fragmentTiles = new ArrayList<>();

    public LinesTabsAdapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        fragments.add(fragment);
        fragmentTiles.add(title);
    }

    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return fragmentTiles.get(position);
    }
}

提前感谢您的任何建议。

1 个答案:

答案 0 :(得分:2)

好吧,你的类看起来应该是一个函数,但我假设这只是一个例子。说完了

当你的对象需要存储构造它的值以及由它们产生的东西时,这很有用:

class addTwoNumbers1(object):

    def __init__(self, number1, number2):
        self.number1 = number1
        self.number2 = number2
        self.result = number1 + number2

当你的对象需要存储的不是构造它的值时,这很有用,buj只是由它们产生的东西:

class addTwoNumbers2(object):

    def __init__(self, number1, number2):
        self.result = number1 + number2

当您的对象只需要存储构造它的值时,这非常有用。结果应按需求计算,而不是对象状态的一部分。

class addTwoNumbers3(object):

    def __init__(self, number1, number2):
        self.number1 = number1
        self.number2 = number2

    def Add(self):
       result = self.number1 + self.number2
       return result

不。没有意义。这是一个类变量。

class addTwoNumbers4(object):

result = 0

def __init__(self, number1, number2):
    self.number1 = number1
    self.number2 = number2

result = self.number1 + self.number2