Передача аргумента из метода с использованием супер

Только одна строка! path и line являются строками

import java.nio.file.Files;
import java.nio.file.Paths;

Files.write(Paths.get(path), lines.getBytes());
0
задан Louis-Philippe Descamps 26 March 2019 в 12:43
поделиться

2 ответа

Нет одной роли, связанной с экземпляром; скорее, роль связана с методом , называемым экземпляром. Попробуйте это.

PATH = 'home_drive_'
PLATFORM = 'Linux_'
ITEM = '_PC'

class Credential:
    def __init__(self, *, path, platform, **kwargs):
        super().__init__(**kwargs)
        self.username_file = path + platform


class AXL(Credential):
    def __init__(self, *, item, **kwargs):
        super().__init__(**kwargs)
        self.item = item

    # "Private" method used to implement the other phone methods
    # You could inline this if you want.
    def _phone(self, role):
        return self.username_file + role + self.item

    def getphone(self):
        return self._phone('r')

    def writephone(self):
        return self._phone('rw')

    def statusphone(self):
        return self._phone('rwx')

reg1 = AXL(path=PATH, platform=PLATFORM, item=ITEM)

print(reg1.getphone())
print(reg1.writephone())
print(reg1.statusphone())
0
ответ дан chepner 26 March 2019 в 12:43
поделиться

super() позволит вам получить доступ к области родительского класса. Вы можете получить доступ к любому методу из него в форме super().method(args) в python3, в Python 2 формат - super(YourClass,self).method(args).

Вызов __init__ для родителя для каждого метода не представляется правильным с точки зрения ООП. Вы повторно инициализируете родительский объект в течение срока его службы. Если вы хотите установить роль от родителя, вы можете просто использовать self.role = .... Любой метод доступа родителей self.role увидит модификацию.

0
ответ дан geckos 26 March 2019 в 12:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: