Вызывание функции в Методе класса?

Можно использовать модуль, названный win32clipboard, который является частью pywin32.

Вот пример, что первые наборы данные буфера обмена тогда получают его:

import win32clipboard

# set clipboard data
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText('testing 123')
win32clipboard.CloseClipboard()

# get clipboard data
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
print data

важное напоминание из документации:

, Когда окно закончит исследовать или изменять буфер обмена, закройте буфер обмена путем вызова CloseClipboard. Это позволяет другим окнам получить доступ к буферу обмена. Не помещайте объект в буфер обмена после вызова CloseClipboard.

101
задан tshepang 4 March 2014 в 20:53
поделиться

4 ответа

Предоставленный вами образец не является допустимым PHP и имеет несколько проблем:

public scoreTest() {
    ...
}

не является правильным объявлением функции - вам необходимо объявлять функции с ключевым словом 'function'.

Синтаксис должен быть таким:

public function scoreTest() {
    ...
}

Во-вторых, включение функций bigTest () и smallTest () в public function () {} не делает их закрытыми - вы должны использовать ключевое слово private для каждого из них по отдельности:

class test () {
    public function newTest(){
        $this->bigTest();
        $this->smallTest();
    }

    private function bigTest(){
        //Big Test Here
    }

    private function smallTest(){
           //Small Test Here
    }

    public function scoreTest(){
      //Scoring code here;
    }
}

Также , принято использовать заглавные буквы в объявлениях классов («Тест»).

Надеюсь, что это поможет.

20
ответ дан 24 November 2019 в 04:39
поделиться

Попробуйте это:

class test {
     public function newTest(){
          $this->bigTest();
          $this->smallTest();
     }

     private function bigTest(){
          //Big Test Here
     }

     private function smallTest(){
          //Small Test Here
     }

     public function scoreTest(){
          //Scoring code here;
     }
}

$testObject = new test();

$testObject->newTest();

$testObject->scoreTest();
195
ответ дан 24 November 2019 в 04:39
поделиться

Вам необходимо вызвать newTest , чтобы сделать функции, объявленные внутри этого метода, «видимыми» (см. Функции внутри функций ). Но тогда это просто обычные функции, а не методы.

3
ответ дан 24 November 2019 в 04:39
поделиться

Чтобы иметь «функцию внутри функции», если я понимаю, о чем вы спрашиваете, вам нужно PHP 5.3, где вы можете воспользоваться новой функцией закрытия.

Итак, вы могли бы иметь:

public function newTest() {
   $bigTest = function() {
        //Big Test Here
   }
}
3
ответ дан 24 November 2019 в 04:39
поделиться
Другие вопросы по тегам:

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