14、人工智能Python基础之面向对象_实例属性、类属性、内置类属性、内置函数_笔记# 编程方式:面向过程 函数式 面向对象# 面向对象(Object Oriented,OO)是软件开发方法# 属性:实例属性(通过构造方法里创建) 类属性# 实例属性一定要通过构造方法来声明# 类属性:定义在类中且在方法体之外,类属性在所有实例化对象中是公用的,通过类型.类属性的方式调用# self不是Python的关键字,代表的是当前实例对象,完全可以用其他单词取代它,只是按照惯例和PEP8标准,推荐使用self# 方法:普通方法、类方法、静态方法、构造方法# 构造方法不需要调用,是在实例化对象的时候由python系统自动调用# 访问属性:1、对象名.实例属性 2、类名.类属性 3、内置函数访问 getattr() hasattr() setattr() delattr()# 调用方法:对象名.方法名# 内置类属性:# 1、__dict__ 类的属性(包含一个字典,由类的属性名:值组成) 实例化对象.__dict__# 2、__doc__ 类的文档字符串 类名或实例化对象名.__doc__# 3、__name__ 类名 类名.__name__# 4、__bases__ 类的所有父类构成元素(包含了由所有父类组成的元组)# __name__ 如果在当前py文件运行则返回__main__ 如果是被引入作为模块在另外py文件运行则返回模块名# -*- coding: utf-8 -*-__author__ = 'dongfangyao'__date__ = '2018/1/12 下午8:49'__product__ = 'PyCharm'__filename__ = 'oo1'# 编程:面向过程 、 函数式 面向对象# 实例属性、类属性、内置类属性、内置函数class Peple(): """ 定义了一个人类 """ country = 'china' def __init__(self, name, age, sex): # print('构造方法:在实例化对象的时候运行创建') self.name = name self.age = age self.sex = sex def getName(self): return self.name# 1、属性: 实例名.属性 类名.类属性 内置函数访问属性p1 = Peple('dfy', 28, 'male')p2 = Peple('dfy888', 20, 'female')# p1.country = 'xxxx'# print(p1.country)# print(p2.country)# print(p1.name)# print(p1.getName())# print(Peple.country)# print(p1.country)# print(Peple.name)# print(getattr(p1, 'name'))# print(hasattr(p1, 'age'))# setattr(p1, 'name', 'dongfangyao')# delattr(p1, 'name')# print(p2.name)print(Peple.__dict__)# print(p1.__dict__)# print(Peple.__doc__)# print(p1.__doc__)print(Peple.__name__)# print(Peple.__bases__)复制代码# -*- coding: utf-8 -*-__author__ = 'dongfangyao'__date__ = '2018/1/12 下午9:13'__product__ = 'PyCharm'__filename__ = 'name'def a(): print('我是a函数')# 源码if __name__ == '__main__': a()print(__name__)复制代码# -*- coding: utf-8 -*-__author__ = 'dongfangyao'__date__ = '2018/1/12 下午9:14'__product__ = 'PyCharm'__filename__ = 'name1'import name复制代码