具有共同的属性和行为的对象的集合叫做类
类是一种概念,抽象,不代表具体的
class 类名:首字母通常用大写
class A():
def _init_(self,a,b,c)#a,b,c为属性
self.a=a
self.b=b
self.c=c
def 方法名(self):
print
a=A("a","b","c")#写出a,b,c的属性,数量对应设置的
a.方法名()
# #用*输出7
# print("*","*","*","*","*")
# print(" *")
# print(" *")
# print("*","*","*","*","*")
# print("*")
# print("*")
# print("*","*","*","*","*")
# #类的构造方法和初始化方法
# class Person:
# def test(self):
# print("这是test方法")
# #self指当前对象
# def seyhello(self):
# print("姓名:",self.name)
# #生成一个tom对象
# tom=Person()#默认调用了类中的构造方法和初始化方法
# tom.test()
# tom.name="Tom"
# #Python可以单独给对象写属性java不可以,是对象属性,不具有通用性
# tom.seyhello()
# class Person():
# name=None
# sex=None
# age=None
# def __init__(self,name,sex,age):
# self.name = name
# self.sex = sex
# self.age = age
# #name为变量,self.name为属性
# def hello(self):
# print("姓名:{0},性别:{1},年龄:{2}".format(self.name,self.sex,self.age))
# #初始化方法
# zhangsan=Person("张三","男",20)
# zhangsan.hello()
# #self指当前对象
# #球队类
# #属性:名称,国家,人数
# class Qiudui():
# mingcheng=None
# guojia=None
# renshu=None
# def __init__(self,mingcheng=None,guojia=None,renshu=None):
# self.mingcheng=mingcheng
# self.guojia=guojia
# self.renshu=renshu
# def xinxi(self):
# print("队伍名称:{0},来自国家:{1},球队人数:{2}".format(self.mingcheng,self.guojia,self.renshu))
# def __str__(self):
# return "队伍名称:{0},来自国家:{1},球队人数:{2}".format(self.mingcheng,self.guojia,self.renshu)
# bingdao=Qiudui("冰岛队","冰岛","11")
# bingdao.xinxi()
# baxi=Qiudui("巴西队","巴西","11")
# baxi.xinxi()
# print(baxi)#_str_重写
# class Student:
# def set_name(self,name):
# self.__name=name
# def get_name(self):
# return self.__name
# #__设置私有,只在这个类中可用
# stu=Student()
# stu.set_name("abc")
# print(stu.get_name())
# #类成员
# class Test:
# def test(self):
# print("Test")
# @classmethod
# def cmethed(cls):
# print("cmethod")
# #静态跟类和对象都没关系
# @staticmethod
# def smethod():
# print("smethod")
# #cls是类对象
# #类成员
# Test.cmethed()
# #对象成员也叫实例成员
# t=Test()
# t.test()
继承:子类继承父类,子类可以使用父类的属性和方法
一个类可以有多个子类
当生成子类对象时,先初始化父类对象
父类的私有属性和方法不会被子类继承
class A(B)#A为子类,B为父类,Python中可以写多个父类
若是多个父类方法名重复继承最左边的
例如:class A(B,C)#B,C方法名相同,继承B的
子类想要调用父类属性时需要将父类的属性也写上然后再调用
class A():
def _init_(self,a,b,c)
self.a=a
self.b=b
self.c=c
def fangfa(self):
print
class B(A):
def _init_(self,a,b,c,d)#a,b,c为父类属性,d为子类属性
子类调用父类属性的写法:
1 self.a=a
self.b=b
self.c=c
2 A._init_(self,a,b,c)
3 super()._init_(a,b,c)#多个父类时继承容易出现错误,尽量少用
self.d=d#子类自己的属性
self.父类方法名
print(""%或者.format(self.a,self.b,self.c,self.d))
排序方法
def _lt_(self,other)
if self.a==other.a:
return self.a<other.a
实例化
list=[]
lr=B("","","","")
lr.方法名()
lr1=B("","","","")
lr2=B("","","","")
list.append(lr)
list.append(lr1)
list.append(lr2)
list.sort()#进行排序,必须有排序方法
for i in list:
print(i)
此篇笔记关键在简单工厂,会另起一篇