Python类和对象笔记

万物皆对象:对象是具体的
具有共同的属性和行为的对象的集合叫做类
类是一种概念,抽象,不代表具体的

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#子类自己的属性

    def ff(self):#若子类方法名与父类方法名相同则重写父类方法
子类调用父类方法的写法:

        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)

此篇笔记关键在简单工厂,会另起一篇





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值