【1.93】面向对象-4-class

 1 class Chinese:
 2     "这是一个中国人的类"
 3     pass
 4 print(Chinese)  #<class '__main__.Chinese'>
 5 #实例化
 6 p1=Chinese()
 7 print(p1)    #<__main__.Chinese object at 0x00C7A2B0>
 8 
 9 #python2 经典类  上面这个就是经典类,python3 中这个没有括号的就是新式类了
10 class Chinese(object):
11     pass
12 #python2 新式类  上面这个就是新式类   就是价格括号 写个父类

 

类 就是描述事物的共同特征和动作

类就两个属性

1  数据属性  就是特征

2  函数属性 就是动作

 

 

#属性  数据属性   函数属性(方法)
class Chinese:
    "这是一个中国人的类"
    dang = "gcd"
    def sui_di_tu_tan():
        print("正在吐痰")
    def cha_dui(self):
        print("%s 正在插队"%self["mingzi"])

print(Chinese.dang)       # gcd
print(Chinese.__dict__["dang"])    # gcd  # Chinese.__dict__  就是找出自己类的 属性字典

Chinese.sui_di_tu_tan()    # 正在吐痰
Chinese.__dict__["sui_di_tu_tan"]()   # 正在吐痰   # Chinese.__dict__  就是找出自己类的 属性字典

Chinese.cha_dui({"mingzi":"yaoming"})   # yaoming 正在插队
Chinese.__dict__["cha_dui"]({"mingzi":"yaoming"})  # yaoming 正在插队  # Chinese.__dict__  就是找出自己类的 属性字典


print(dir(Chinese))   #['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'cha_dui', 'dang', 'sui_di_tu_tan']
print(Chinese.__dict__)  #{'__module__': '__main__', '__doc__': '这是一个中国人的类', 'dang': 'gcd', 'sui_di_tu_tan': <function Chinese.sui_di_tu_tan at 0x018AEF60>, 'cha_dui': <function Chinese.cha_dui at 0x018AEFA8>, '__dict__': <attribute '__dict__' of 'Chinese' objects>, '__weakref__': <attribute '__weakref__' of 'Chinese' objects>}

#第一个是 list     第二个是 dict

 

posted @ 2016-05-06 22:18  科学小怪癖  阅读(84)  评论(0)    收藏  举报