#将用来创建对象的字符串预编译成code对象.
create_obj = compile('obj()', 'create_obj.py', 'eval')
#需要创建的时候, 直接用code对象, 这样会有效率上的提升. #因为code对象是预编译过的, 而不用每次去编译
a = eval(create_obj)
file_name 模块名
module = __import__(file_name)
parser = getattr(module, class_name)()
parser.method_name()
print parser.method_name()
方法一:class obj(object): pass a = eval('obj()')方法二:如果是经常需要这样可以#将用来创建对象的字符串预编译成code对象.create_obj = compile('obj()', 'create_obj.py', 'eval') #需要创建的时候, 直接用code
对象/实例:具体的某一个事物(隔壁阿花、楼下旺财)
实例化:类——>对象的过程(这在生活中表现的不明显,我们在后面再慢慢解释)
在
python
中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是‘类’,对象是则是这一类事物中具体的一个。
# 对象 =
类名
()
# 过程:
#
类名
()首先会创造出一个对象,创建了一个self变量
# 调用 __init__方法,
类名
()里面的参数会被这里接收
# 执行init方法
# 返回self
# 对象能做的
根据上课讲的吴迪老师的微信好友数据分析,请选择你的微信好友数据,或者你的qq好友数据,或者你的班级同学数据,或者其他你能获取的其他人物数据
作为分析对象。然后利用上课讲的技术,但不限于,对其进行数据分析。比如分析微信好友数据,可以可视化好友男女比例分布,可视化省份来源,可视化签名的情感强度值等等。
要求:1分析数据用xls或者csv格式存储。
2.代码用py文件附件形式上传,方便我的下载。
3.在作业里可以介绍你的主要功能和可视化截图。
4.根据功能完整性和结果的酷给分。
二、项目完成功能总
在
python
中使用class关键字来定义类,定义类时需要注意以下几个事项:
(1)类代码块以class关键字开头,代表定义类。
(2)class之后是
类名
,这个名字由用户自己指定,命名规则一般是多个单词组成的名称,每个单词除了第一个字母大写之外,其余字母均为小写,class和
类名
中间要有空格。
(3)
类名
后加冒号,类体由缩进的语句块组成,
之前在做数据解析的时候,发现不同类别的数据解析的流程是一样的,只不过每次去查询获取数据的时候表不相同,为了代码能够简洁一些,想到了先创建一个父类A,每个数据类别对应一个A的子类,在子类中实现数据查询的方法,然后通过获取A的所有子
类对象
,用反射机制
实例化对象
,再调用数据查询的方法来完成所有类别的数据解析工作,这样如果再新增一个类别,只需要再添加一个A的子
类对象
即可。
项目结构如下:
如下代码内容是关于
python
根据
类名
动态生成类实例的方法的代码,应该对码农也有好处。
#modulePath是模块文件的路径+模块的文件名。
aMod = sys.modules[modulePath]
当我们动态的加载了这个模块后,我们就可以从这个模块中取得你要的类了,感觉上这个方法有点像java中从类中反射出方法。下以的代码可以
aClass= getattr(aMod, className...
#第一种方法。“文件名”下的 TestClass.py 中定义的外部类 TestClassgo()
import 文件名.TestClass
go=文件名.TestClass.TestClassgo()
#多个文件之间调用类的方法,第二种方法
from 文件名.TestClass import TestClassgo
go=TestClassgo()
在
Python
中,类的实例化是通过在
类名
后面加上圆括号的方式来创建一个类的实例。例如,如果有一个名为 "MyClass" 的类,可以通过如下方式创建一个该类的实例:
my_object = MyClass()
这样就可以使用这个实例来调用类中定义的方法和属性了。
如果类有参数,在实例化时需要在圆括号中传入对应的参数,例如:
class MyClass:
def __init__(self, name):
self.name = name
my_object = MyClass("John")
这样就实例化了一个MyClass类,并且传入了一个参数"John"。