|
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
复制代码
|
|