Γλωσσική Τεχνολογία. Object-Orientation in Python

Σχετικά έγγραφα
Γλωσσική Τεχνολογία. Object-Orientation in Python

Εισαγωγή στα Αντικείμενα

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Τεχνικές NLP Σχεδιαστικά Θέματα

Εισαγωγή στον Προγ/μό Υπολογιστών

Οντοκεντρικός Προγραμματισμός

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Python & NLTK: Εισαγωγή

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγικό Φροντιστήριο

Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Κλάσεις και Αντικείµενα

Κλάσεις και αντικείμενα #include <iostream.h<

Γλωσσική Τεχνολογία. Εισαγωγικό Φροντιστήριο

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή στον Προγ/μό Υπολογιστών

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

(Διαφάνειες Νίκου Βιδάκη)

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Ακολουθίες: Λίστες και Πλειάδες Χειμερινό Εξάμηνο 2016

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΕΙΣΑΓΩΓΙΚΟ ΦΡΟΝΤΙΣΤΗΡΙΟ

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

Θέματα Προγραμματισμού Η/Υ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Ειδικά Θέματα Προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Γλώσσες Προγραμματισμού Εφαρμογών - ΜΕΠΒ20

Θέματα Προγραμματισμού Η/Υ

Αντικειμενοστρεφής Προγραμματισμός

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Κλάσεις στην Python. Δημιουργία κλάσεων

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων


Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Κλάσεις στην Python. Δημιουργία κλάσεων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Βασικά Στοιχεία Python 3

Βασικά Στοιχεία της Java

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

Αντικειμενοστρεφής Προγραμματισμός

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Αντικειµενοστραφής Προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Βασικές Ασκήσεις από τα Εργαστήρια της PYTHON (εβδομάδα 5)

Λίστες. Lista=[ red, green, blue ] Το πλήθος των στοιχείων μια λίστας δίνεται από τη συνάρτηση len(): Len(Lista)

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Λίστες και Πλειάδες Χειµερινό Εξάµηνο 2014

Προγραμματισμός Ι (ΗΥ120)

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

8. Μέθοδοι (Methods)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

Ερωτήσεις και απαντήσεις στα θέματα του κανονισμού κατάρτισης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors, equals, tostring Αντικείμενα ως παράμετροι

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies

Από τη UML στον Κώδικα. Μέρος Β

Πληροφορική ΙΙ Θεματική Ενότητα 10

Η βασική συνάρτηση προγράμματος main()

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning

ΑΣΚΗΣΗ 2 -ΑΚΥΡΩΣΗ ΣΗΜΑΣΙΑΣ ΕΙΔΙΚΩΝ ΧΑΡΑΚΤΗΡΩΝ

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός Υπολογιστών Τάξη Γ Αθανασιάδης Χρήστος ΠΕ19 ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Ηβασικήσυνάρτηση προγράμματος main()

Μάθημα 1 [3/11/2015].

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Constructors Υπερφόρτωση Αντικείμενα ως παράμετροι

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Βασικά Στοιχεία της Java

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙΔΙΚΟΤΗΤΑΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΛ (ΟΜΑΔΑ Α ΚΑΙ Β ) ΤΕΤΑΡΤΗ 20 ΙΟΥΝΙΟΥ 2018

Ευφυής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Transcript:

Γλωσσική Τεχνολογία Object-Orientation in Python

Everything Is an Object >>> a=[1,2,3] >>> b=a >>> b.append(4) Τι περιέχουν τα a και b? >>> def hello():... print "hello world!"... >>> def fcall(f):... f()... >>> fcall(hello) hello world! Καλείται η hello

Defining Classes class test: pass Ορισμός με το keyword class Το σώμα της κλάσης πρέπει να έχει τα κατάλληλα κενά. Ο ορισμός της κλάσης τελειώνει στην πρώτη γραμμή χωρίς τα κενά. class test(parentclass): pass Υποστηρίζει κληρονομικότητα Υποστηρίζει πολλαπλή κληρονομικότητα!

Constructor? Δεν υπάρχουν constructors και destructors Κάτι σαν constructor: Η μέθοδος init class test: print "initialized!" Η δήλωση της init δεν είναι υποχρεωτική. Καλείται κατά την αρχικοποίηση του αντικειμένου, η οποία γίνεται με κλήση της κλάσης με το όνομά της: a=test() Το όρισμα self είναι αναφορά στο αντικείμενο (κάτι σαν το this της C# και της Java)

init and inheritance Αν δηλωθεί, πρέπει να καλέσει τις init των γονικών κλάσεων! class ptest1: print "p1 init! class ptest2: print "p2 init!" class test(ptest1,ptest2): ptest1. init (self) ptest2. init (self) Αν δεν δηλωθεί στην θυγατρική κλάση, καλείται αυτόματα η init του πρώτου πατέρα. Αν δηλωθεί χωρίς να καλέσει τις init των γονέων, αυτές δεν καλούνται αυτόματα!

Memory Management Κανονικό garbage collection Δεν χρειάζεται καταστροφή των αντικειμένων Διατηρείται μετρητής αναφορών στα αντικείμενα Το αντικείμενο καταστρέφεται όταν ο μετρητής γίνει 0 >>> a=[1,2,3] >>> b=a >>> b.append(4) Η λίστα που περιέχει τα [1,2,3,4] καταστρέφεται όταν βγουν εκτός εμβέλειας οι αναφορές a και b. Things disappear when no one is looking at them

Methods Normal Κανονικές συναρτήσεις της κλάσης Καλούνται με χρήση του αντικειμένου, πχ a.test() Private Αν το όνομα μιας μεθόδου αρχίζει με και δεν τελειώνει με, θεωρείται private και δεν καλείται από το αντικείμενο. Special Μέθοδοι που το όνομά τους αρχίζει και τελειώνει με. Δεν καλούνται ρητά, αλλά αυτόματα υπό συγκεκριμένες συνθήκες.

Methods & self Στην δήλωση των μεθόδων το πρώτο όρισμα είναι υποχρεωτικά το self Όταν καλείται η μέθοδος, δεν περιλαμβάνεται το self στη λίστα των ορισμάτων. Εξαίρεση: Αν κληθεί μέσα από την κλάση μέθοδος της γονικής κλάσης, πρέπει να συμπεριληφθεί το self. class ptest: print "p1 init!" def hi(self,name): print "Parent: Hello "+name+"!" class test(ptest): ptest. init (self) def sayhi(self,name): ptest.hi(self,name) a=test() a.sayhi("vivi")

Methods & Inheritance Οι μέθοδοι των γονικών κλάσεων μπορούν να γίνουν override. Διαδικασία εύρεσης της μεθόδου που καλείται: Η python ψάχνει τη μέθοδο μέσα στην κλάση. Αν δεν τη βρει, ψάχνει μέσα στον πρώτο πατέρα Αν δεν τη βρει, ψάχνει στο δεύτερο πατέρα κ.ο.κ class ptest1: def hi(self,name): print "Parent1: Hello "+name+"!" class ptest2: def hi(self,name): print "Parent2: Hello "+name+"!" class test(ptest1,ptest2): pass a=test() a.hi("vivi") Θα κληθεί η hi της ptest1 κλάσης

Special Methods init : καλείται στο initialization των objects setitem : καλείται στην ανάθεση των items μιας συλλογής getitem : καλείται στην ανάκτηση των items μιας συλλογής class test(): self.data={} def setitem (self,key,val): self.data[key]=val def getitem (self,key): return self.data[key] a=test() a["k1"]=1 #καλείται η setitem print a["k1"] #καλείται η getitem

Special Methods - advanced str : Καλείται όταν χρησιμοποιούμε τον τελεστή str σε ένα αντικείμενο, ο οποίος επιστρέφει την αναπαράσταση σε string του αντικειμένου. str(obj) cmp : Καλείται όταν συγκρίνονται δύο αντικείμενα αυτής της κλάσης με τον == τελεστή. obj1==obj2 len : Καλείται όταν χρησιμοποιείται σε αντικείμενο ο τελεστής len len(obj) delitem : Καλείται όταν χρησιμοποιούμε τον del τελεστή για να διαγράψουμε ένα item από μια συλλογή del obj[key]

Special Methods Usage Cases Σενάριο: Έχω δημιουργήσει μια κλάση και θέλω να ταξινομήσω μια λίστα από αντικείμενα αυτής της κλάσης. Πως ορίζω τον τρόπο σύγκρισης των αντικειμένων μεταξύ τους? class student: def init (self,id,name): self.id=id self.name=name def cmp (self,other): return cmp(self.id, other.id) def str (self): return 'id='+ str(self.id) + ' name=' + str(self.name) students=[student(2191,'vivi'),student(2100,'maria'),student(3920,'giorgos')] students.sort() #καλείται η cmp for s in students: print s #καλείται η str Εκτυπώνει: id=2100 name=maria id=2191 name=vivi id=3920 name=giorgos

Data Attributes Data attributes (=Instance variables) Μεταβλητές (μνήμη) που ανήκει στο instance Αρχικοποιούνται μόλις πάρουν τιμή σε κάποια συνάρτηση Καλό είναι όλες να αρχικοποιούνται στην init Για να δηλωθεί ότι είναι data attribute και όχι local μεταβλητή της συνάρτησης, υποχρεωτικά χρησιμοποιείται το self class test(): self.x=0 def incr(self,num): self.x+=num a=test() a.incr(3) print a.x #εκτυπώνει 3

Class Attributes Class attributes (=Static variables) Μεταβλητές (μνήμη) που ανήκει στην κλάση. class test(): cnt=0 #class attribute self.inst_cnt=0 #data attribute test.cnt+=2 print test.cnt #εκτυπώνει 2 a=test() a.inst_cnt+=1 print a.inst_cnt #εκτυπώνει 1 print a.cnt #εκτυπώνει 2

Everything Is an Object: So what? Η Python προσφέρει ένα σύνολο συναρτήσεων που διαχειρίζονται τις κλάσεις και τις συναρτήσεις σαν να ήταν αντικείμενα. The Power of Introspection (Dive into Python κεφ. 4) Μπορείτε να κάνετε πράγματα που σε άλλες γλώσσες είναι δύσκολο ή αδύνατο να γίνουν! Πχ αυτό: def incr(num,step): return num+step def decr(num,step): return num-step print "Give initial number: " num=int(raw_input()) print "Give step: " step=int(raw_input()) if(num<step): f=incr else: f=decr res=f(num,step) print res

Functions for Introspection type dir Επιστρέφει τον τύπο οποιουδήποτε αντικειμένου >>> type(1) <type 'int'> >>> type([]) <type 'list'> >>> def foo():... pass... >>> type(foo) <type 'function'> Επιστρέφει λίστα με τα ονόματα των μεθόδων οποιουδήποτε αντικειμένου >>> dir([]) [' add ', ' class ', ' contains ', ' delattr ', ' delitem ', ' delslice ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ', ' getitem ', ' getslice ', ' gt ', ' hash ', ' iadd ', ' imul ', ' init ',' iter ', ' le ', len ', ' lt ', ' mul ', ' ne ', ' new ', ' reduce ', ' reduce_ex ', ' repr ', ' reversed ', ' rmul ', ' setattr, ' setitem ', ' setslice ', ' sizeof ', ' str ', ' subclasshook ', append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] getattr Επιστρέφει αναφορά σε συνάρτηση Μπορεί να χρησιμοποιηθεί το όνομά της σε string για να κληθεί >>> a=[1,2] >>> getattr(a,'append')(3) >>> a [1, 2, 3]

Introspection Usage Cases Σενάριο: Έχω εγκαταστήσει το NLTK και θέλω να δω τι δυνατότητες έχω να χρησιμοποιήσω το brown corpus. >>> import nltk >>> nltkdir = dir(nltk) #ανακτώ τα περιεχόμενα του nltk >>> [corp for corp in nltkdir if corp.find('corp')>=0] #επιλέγω αυτά που αναφέρονται σε corpora ['corpus'] >>> corpusdir=dir(nltk.corpus) #ανακτώ τα περιεχόμενα του corpus module >>> [br for br in corpusdir if br.find('brown')>=0] #επιλέγω αυτά που αναφέρονται στο brown ['brown', 'simplify_brown_tag'] >>> >>> dir(nltk.corpus.brown) #ανακτώ τα περιεχόμενα του brown ['_LazyCorpusLoader args', '_LazyCorpusLoader kwargs', '_LazyCorpusLoader name', '_LazyCorpusLoader reader_cls', ' class ', ' delattr ', ' dict ', ' doc ', ' format ', ' getattribute ', ' hash ', ' init ', ' module ', ' name ', ' new ', ' reduce ', ' reduce_ex ', ' repr ', ' setattr ', ' sizeof ', ' str ', ' subclasshook ', ' weakref ', '_add', '_get_items', '_get_root', '_init', '_resolve', 'abspath', 'abspaths', 'categories', 'encoding', 'fileids', 'files', 'items', 'open', 'paras', 'raw', 'readme', 'root', 'sents', 'tagged_paras', 'tagged_sents', 'tagged_words', 'words']