Python字典、模块、类、对象傻傻分不清
一、字典
mystuff = {'apple': "I AM APPLES"}
print(mystuff['apple'])
字典是类似列表的一种储存数据的方法,但是要获取其中的数据,用的不是数值索引,而是任何你想用的东西。这样就可以把字典当作储存和组织数据了。
二、模块
def apple():
print("I AM APPLE!")
tangerine = "Living reflecion of a dream"
import mystuff
mystuff.apple()
print(mystuff.tangerine)
我们发现模块和字典的使用方式有点相似,只不过是语法的不同。
Python里有一个非常常用的模式:
1、拿一个类似“键 = 值”风格的容器
2、通过“键”的名称获取其中的“值”
对于字典来说,键可能是一个字符串,获取值的语法是"[key]"。对于模块来说,key是函数或者变量的名称,而语法是“.key”。除了这个,就没有什么区别了。
三、类
类和模块差不多
可以把模块当作一种专用的字典,可以通过它来储存一些Python代码,并通过“.”运算符访问这些代码。Python中还有另一种方法来实现类似的目的——类。通过类,可以把一组函数和数据放到一个容器中,从而用“.”运算符访问他们。
class MyStuff(object):
def __init__(self):
self.tangerine = "And now a thousand years between"
def apple(self):
print("I AM CLASSY APPLES!")
可以看的出模块和类的功能并无明显的差别。但是我们使用类而非模块的原因是:类可以重复创建出很多出来,他们不会互相干涉。而模块,一次导入之后,整个程序里就只有这一份内容。
四、对象
学习了类,那么类中引出的问题又有“object”又是什么?“object”是对象
class Person:
"""
不带object
"""
name = "zhengtong"
class Animal(object):
"""
带有object
"""
name = "chonghong"
if __name__ == "__main__":
x = Person()
print "Person", dir(x)
y = Animal()
print "Animal", dir(y)
运行结果如下
Person ['__doc__', '__module__', 'name']
Animal ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__',
'__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']
Person类很明显能够看出区别,不继承object对象,只拥有了__doc__ , module 和 自己定义的name变量, 也就是说这个类的命名空间只有三个对象可以操作.
Animal类继承了object对象,拥有了好多可操作对象,这些都是类中的高级特性。