原作者:程序员节李叫兽
原出处:知乎平台
anaconda项目管理
1.项目菜单栏
新建、打开本地、项目控制
2.左边项目管理
新建文件、文件夹
在文件资源管理显示
类和对象
核心细想:面向对象
理论:编程中的一个更加优化的方法和思想,三大概念
1.封装 :私有化属性和私有化属性的GET|SET函数,加强属性数据的保护
class Name():
__私有属性=''
def get私有属性(self):
retrun 私有属性
def set私有属性(self,参数):
self.私有属性=参数
2.继承 :两个类之前上下级关系,父类和子类,子类继承父类,拥有父类的所有财产,父类的更新会影响到子类,利于维护,单向继承
class Name1():
class Name2(Name1):
class Name3(Name1,Name2):
3.多态性:抽象和接口两种形态,维护代码的整体,实现统一管理
原因:没有对象,何来面向?
类
模版:描述一个拥有相同属性和行为的抽象事物,分类
意义:通过该模版作为基础快速创建一个新的事物
来自何方?世间万物皆可抽象类
规范:类名必须大驼峰输入法
class Person(继承器):
属性
行为:函数描述行为 def
对象
变量即是对象:是一个拥有独立模版属性和行为的具体的事物
对象是模版的引用对象,可以通过对象操作模版的属性和行为
对象默认多例模式:一个模版可以创建多个对象
实例化:person = Person()
属性
1.公开属性
外部可以看到并且可以操作的属性
2.私有属性 __私有化
外部不可以看到并且不可以操作的属性
类函数
self:该类的实例对象
不能够直接访问该类的属性,可以通过self.属性
内置函数
每声明一个类,都会拥有自己的生命周期:
__init__:初始化函数,自调用,在实例化对象之前调用
__del__:被删除,被系统释放掉自调用,在该类的对象使用完之后调用
__str__:print(对象)会出发str函数,你可以自定义一个属性输出字符串返回使用
代码实例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 28 09:41:30 2020
@author: lpf
@content: 类和对象
"""
# 类
class Person():
# 类函数
def eat(self):
print(self.name,'eat')
def backetBall(self):
print(self.name,'backetBall',self.__id)
# 内置函数:生命周期函数
def __init__(self,n,s,a): # 构造器
# 公开属性
self.name = n
self.sex = s
self.age = a
# 私有属性
self.__id = 110
print('__init__')
def __del__(self):
print('__del__')
def __str__(self):
# 格式化字符串: %s 插入字符类型数据 %d 插入整数类型数据
return 'Person属性 - %s:%s %s:%s %s:%d'%('name',self.name,'sex',self.sex,'age',self.age)
# 封装GET|SET
def getID(self):
return self.__id
def setID(self,id):
self.__id = id
# 对象
per1 = Person('蔡徐坤','man',20)
per1.eat()
per1.backetBall()
print(per1)
per1.setID(10010)
print(per1.getID())
del per1
# 继承
class Child1(Person):
child1_attr = 'child1'
pass
child1 = Child1('王一博','man',20)
print(child1)
# 继承:多继承 (Person,Child1,........)
class Child2(Child1):
pass
child2 = Child2('王嘉儿','man',20)
print(child2,child2.child1_attr)
运行结果
runfile('/Users/lpf/Desktop/安康学院pyhton实训/python实训/第二天/3.类和对象.py')
__init__
蔡徐坤 eat
蔡徐坤 backetBall 110
Person属性 - name:蔡徐坤 sex:man age:20
10010
__del__
__init__
Person属性 - name:王一博 sex:man age:20
__init__
Person属性 - name:王嘉儿 sex:man age:20 child1
__del__
__del__