Базовые классы всегда создаются перед членами данных. Элементы данных создаются в том порядке, в котором они объявлены в классе. Этот порядок не имеет ничего общего с списком инициализации. Когда элемент данных инициализируется, он будет просматривать список инициализации для параметров и вызывать конструктор по умолчанию, если нет совпадения. Деструкторы для элементов данных всегда вызывают в обратном порядке.
Вы можете сделать:
# import libraries
import os,pandas
# list filenames, assuming your path is './'
files = [i for i in os.listdir('./') if i[:3]=='GSE' and i[-3:]=='txt']
# get contents of files
contents = []
for i in files:
with open(i) as f: contents.append(f.read().strip())
# into a nice table
table = pandas.DataFrame(contents, index=files, columns=['text'])
Ваш код выглядит отлично читаемым. Возможно, вы искали что-то вроде этого (только Python3):
import pathlib
documents = pd.DataFrame(glob.glob('*.txt'), columns = ['files'])
documents['text'] = documents['files'].map(
lambda fname: fname.startswith('GSE') and pathlib.Path(fname).read_text())