码迷,mamicode.com
首页 > 编程语言 > 详细

Python第五课,类 对象、排序、单例、继承

时间:2018-06-03 14:34:33      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:get   姓名   使用   逗号   instance   sleep   lists   定义   多个   


对象使用:类名(参数) 可以使用self调用

def _new_(cls) 用来创建对象,但必须有返回值,就是实例化

def _init_(self,参数) 初始化方法,用来给参数定义初始化值的

def_str_(self) 重写父类objectstr方法


#sys.getrefcount()测试一个对象有多少个引用
import sys
class Student:
def sleep(self):
print("睡觉")
t=Student()
print(sys.getrefcount(t))

构造方法:
class A:
def __new__(cls,name):
return object.__new__(cls)
def __init__(self,name):
self.name=name
a=A("tom")

#单例
class SingleTone:
__instance=None #私有
def __new__(cls):
if cls.__instance==None:
cls.__instance=object.__new__(cls)
return cls.__instance
else:
return cls.__instance
s=SingleTone()
ss=SingleTone()
print(id(s),id(ss))

对象排序
class Car:
def __init__(self,brand=None,price=None):
self.brand=brand
self.price=price
def __gt__(self, other):
return self.brand.encode("gbk")>other.brand.encode("gbk")
def __str__(self):
return self.brand+str(self.price)

lists=[Car("啊迪:",300000),Car("英菲:",350000),Car("奥迪:",400000)]
lists.sort()
print(lists)
for i in lists:
print(i)

继承:子类继承父类,子类可以拥有父类的属性和方法,减少代码冗余

class Person:
def __init__(self,name=None,age=None,sex=None):
self.name=name
self.age=age
self.sex=sex
def __str__(self):
return "我的姓名:{0},我的年龄:{1},我的性别:{2}".format(self.name,self.age,self.sex)
class Music:
def __init__(self,piano=None):
self.piano=piano
class Student(Person,Music):
def __init__(self,name=None,age=None,sex=None,score=None,piano=None):
# # self.name=name
# Person.name=name
# self.age = age
# self.sex = sex
Person. __init__(self,name,age,sex)
self.score=score
Music.piano=piano

def __str__(self):
return "我的姓名:{0},我的年龄:{1},我的性别:{2},我的成绩:{3},音乐:{4}".format(self.name,self.age,self.sex,self.score,self.piano)
stu=Student("Mary",21,‘female‘,80)
print(stu)
在子类调用父类属性方法:
1、父类.属性
2 self.属性
3 父类._init_(self,参数)
4 super(父类,self)._init_(所有参数)

多继承 :class C(A,B):当继承多个父类时,用逗号隔开写在参数里

Python第五课,类 对象、排序、单例、继承

标签:get   姓名   使用   逗号   instance   sleep   lists   定义   多个   

原文地址:https://www.cnblogs.com/yuello/p/9128749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!