вы также можете использовать это:
import requests
from bs4 import BeautifulSoup
import csv
url = "http://58.68.130.147/"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, "html.parser")
get_details = soup.find_all("input", attrs={"name":"stainfo"})
for val in get_details:
get_val = val["value"]
print(get_val)
Я рискну утверждения очевидного: Вы вызываете функцию, если она определяется в базовом классе, это автоматически доступно в производном классе (если это не private
).
, Если существует функция с той же подписью в производном классе, можно снять неоднозначность его путем добавления имени базового класса, сопровождаемого двумя двоеточиями base_class::foo(...)
. Необходимо отметить, что в отличие от Java и C#, C++ делает не , имеют ключевое слово для "базового класса" (super
или base
) начиная с поддержек C++ множественное наследование , который может привести к неоднозначности.
class left {
public:
void foo();
};
class right {
public:
void foo();
};
class bottom : public left, public right {
public:
void foo()
{
//base::foo();// ambiguous
left::foo();
right::foo();
// and when foo() is not called for 'this':
bottom b;
b.left::foo(); // calls b.foo() from 'left'
b.right::foo(); // call b.foo() from 'right'
}
};
Кстати, Вы не можете произойти непосредственно из того же класса дважды, так как не будет никакого способа относиться к одному из базовых классов по другому.
class bottom : public left, public left { // Illegal
};
Учитывая родительский класс, названный Parent
и дочерний класс, названный Child
, можно сделать что-то вроде этого:
class Parent {
public:
virtual void print(int x);
}
class Child : public Parent {
void print(int x) override;
}
void Parent::print(int x) {
// some default behavior
}
void Child::print(int x) {
// use Parent's print method; implicitly passes 'this' to Parent::print
Parent::print(x);
}
Примечание, что Parent
подлинное имя класса и не ключевое слово.
Если Ваш базовый класс называют Base
, и Ваша функция вызвана FooBar()
, можно назвать его непосредственно использованием Base::FooBar()
void Base::FooBar()
{
printf("in Base\n");
}
void ChildOfBase::FooBar()
{
Base::FooBar();
}
В MSVC для этого есть специальное ключевое слово Microsoft: __ super
MSDN: Позволяет вам явно указать, что вы вызываете реализацию базового класса для функции, которую вы переопределяете.
// deriv_super.cpp
// compile with: /c
struct B1 {
void mf(int) {}
};
struct B2 {
void mf(short) {}
void mf(char) {}
};
struct D : B1, B2 {
void mf(short) {
__super::mf(1); // Calls B1::mf(int)
__super::mf('s'); // Calls B2::mf(char)
}
};