2010-10-21 12 views
9

Bir sınıf içinde saklanan verilere erişebilen bir program yapıyorum. örneğin bu sınıf var Yani: Bir sınıftaki tüm değişkenleri yazdırır mısınız? - Python

#!/usr/bin/env python 
import shelve 

cur_dir = '.' 

class Person: 
    def __init__(self, name, score, age=None, yrclass=10): 
     self.name = name 
     self.firstname = name.split()[0] 
     try: 
      self.lastname = name.split()[1] 
     except: 
      self.lastname = None 

     self.score = score 
     self.age = age 
     self.yrclass = yrclass 
    def yrup(self): 
     self.age += 1 
     self.yrclass += 1 

if __name__ == "__main__": 
    db = shelve.open('people.dat') 
    db['han'] = Person('Han Solo', 100, 37) 
    db['luke'] = Person('Luke Skywalker', 83, 26) 
    db['chewbacca'] = Person('Chewbacca', 100, 90901) 

Yani bu kullanarak ben gibi tek bir değişken dışarı çağırabilirsiniz:

print db['luke'].name 

Ama bütün değişkenleri yazdırmak istiyorsa, ben biraz kayboldum.

['__doc__', '__init__', '__module__', 'age', 'firstname', 'lastname', 'name', 'score', 'yrclass', 'yrup'] 

Ama o fiili verileri yazdırmak mümkün istiyorum:

f = db['han'] 
dir(f) 

alıyorum:

Koşarsam.

Bunu nasıl yapabilirim?

Şimdiden teşekkürler!

cevap

0

Sadece beeprint

pp(db['han']) sonra, bu yazdırılacaktır deneyin:

instance(Person): 
    age: 37 
    firstname: 'Han', 
    lastname: 'Solo', 
    name: 'Han Solo', 
    score: 100, 
    yrclass: 10 

hiçbir yöntemleri, hiçbir özel özellikleri.

0

baskı (değişkenler (ObjectName))

Çıkış: { 'm_var1': 'VAL1', 'm_var2': 'val2'}

Bu başlatıldı değerlerine sahip olan tüm sınıf değişkenleri yazdırılır.

İlgili konular