python实训day2(上)---面向对象 封装、继承、多态

原创 2018年04月15日 22:45:29

#括号用于继承 继承人的类

class TUser():
#使用构造器可以不定义变量
# username=''
#password=''
def __init__(self,username,password):#构造器
self.username=username
self.password=password
def __str__(self):#定义输出对象名时直接返回的值
return '{username:' + self.username +','+'password:'+self.password+'}'

def getPassword(self):#self 类实例化之后的对象 this
return self.password


#user1 = TUser()
#user1.username=input('username:')
#user1.password=input('password:')
#使用构造器
user1 = TUser(input('username:'),input('password:'))

#print(user1.username)
#print(user1.getPassword())
print(user1)#没有__str__返回内存地址 有__str__函数返回函数中的内容

if user1.username=='admin' and user1.password=='123456':
print('登录成功!')
else:
print('fail')

#封装
class TUser():
def __init__(self,username,password):#构造器
self.__username=username#__私有变量
self.__password=password#__私有变量
def __str__(self):#定义输出对象名时直接返回的值
return '{username:' + self.__username +','+'password:'+self.__password+'}'

def setUsername(self,username):#封装性
self.__username=username
def setPassword(self,password):#封装性
self.__password=password
def getPassword(self):#封装
return self.__password
def getUsername(self):#封装
return self.__username



#使用构造器
user1 = TUser(input('username:'),input('password:'))

#print(user1.username)
#print(user1.getPassword())
print(user1)#没有__str__返回内存地址 有__str__函数返回函数中的内容

if user1.getUsername()=='admin' and user1.getPassword()=='123456':
print('登录成功!')
else:
print('fail')


#继承
class TPerson():
def __init__(self,height,weight):
self.height=height
self.weight=weight
def run(self):
self.__think()
print('running')
def __think(self):
print('thinking...')


class TUser(TPerson):

def __init__(self,username,password,height,weight):#构造器
TPerson.__init__(self,height,weight)#父类构造器
self.__username=username#__私有变量
self.__password=password#__私有变量

def __str__(self):#定义输出对象名时直接返回的值
return '{username:' + self.__username +','+'password:'+self.__password+'}'

def setUsername(self,username):#封装性
self.__username=username
def setPassword(self,password):#封装性
self.__password=password
def getPassword(self):#封装
return self.__password
def getUsername(self):#封装
return self.__username
def run(self):#方法重写
print ('car running...')
class TSell(TPerson):
def __init__(self,height,weight):#构造器
TPerson.__init__(self,height,weight)#父类构造器
def run(self):
print('OFO running...')

新建test.py

#encoding utf-8
from models.objects import TUser
#使用构造器
user1 = TUser('admin','123',170,50)

print(user1.height)
user1.run()
#user1.__think()私有方法不能直接调用



#多态
#使用构造器
user1 = TUser('admin','123',170,50)
seller = TSell(180,70)

#此函数的定义叫做多态
def getMethod(person):
person.run()
getMethod(user1)
getMethod(seller)




Python 数据挖掘与机器学习进阶实训-1

Python 数据挖掘与机器学习进阶实训-1
  • 2017年12月12日 15:42

【Python学习笔记】面向对象编程:继承和多态

【根据廖雪峰python教程整理】 一、继承 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的...
  • Junkichan
  • Junkichan
  • 2016-07-11 15:14:23
  • 921

Python 学习笔记 - 面向对象(封装,继承和多态)

之前学习的编程方式都是通过面向过程来实现的,对于一些重用的代码,进一步的使用了函数,增强了代码的可读性和重用性。Python同时还支持面向对象的编程。 面向对象有三大特性: ...
  • xiaminli
  • xiaminli
  • 2017-07-18 19:17:16
  • 387

面向对象编程三大特性------封装、继承、多态

本文是对面向对象编程三大特性(封装、继承、多态)的一个学习总结。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-06-07 11:41:12
  • 14121

python 对象的魔力--多态、封装和继承

简单介绍下这几个名词的意思。 多态(Polymorphism):意味着可以对不同类的对象使用相同的操作。 封装(Encapsulation): 即对外部世界隐藏对象的工作细节。 继承(Inher...
  • u011510825
  • u011510825
  • 2016-02-23 21:57:58
  • 865

【python学习笔记】Python面向对象的理解(封装,继承,多态)

说明提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation)。Python也是一种支持OOP的动态语言,本文将简单阐...
  • qq_29287973
  • qq_29287973
  • 2017-09-06 16:46:56
  • 1834

面向对象的三大特征——封装、继承、多态

接触过面向对象的人都知道面向对象有三大特征,分别是封装、继承和多态。这三者分别指的是什么,为什么是这哥仨,使用他们有什么好处,我们来梳理一下。 封装        原则:隐藏对象的属性和实现细节,仅对...
  • haovip123
  • haovip123
  • 2015-02-20 16:59:52
  • 3656

面向对象之封装,继承,多态

Java是一种面向对象的语言,这是大家都知道的,他与那些像c语言等面向过程语言不同的是它本身所具有的面向对象的特性——封装,继承,多态,这也就是传说中的面向对象三大特性...
  • superloveboy
  • superloveboy
  • 2015-01-09 18:30:03
  • 1192

PHP面向对象编程--继承(重写(多态)、封装、可见性)

  • helencoder
  • helencoder
  • 2016-04-10 19:37:24
  • 1485

java面向对象的四大特性-多态,继承,抽象,封装

1.多态 面向对象的四大特性:封装、继承、多态、抽象。从一定角度来看,封装和继承几乎都是为多态而准备的。是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对...
  • basycia
  • basycia
  • 2016-07-07 12:54:26
  • 4980
收藏助手
不良信息举报
您举报文章:python实训day2(上)---面向对象 封装、继承、多态
举报原因:
原因补充:

(最多只允许输入30个字)