python中的类

python中的类

前言:

      说到类,那么有可能联想到面向对象,不用说python就是面向对象的编程语言,说到面向对象,就会想到面向对象的三大特征,封装、继承、多态。

关于面向对象的解释在这个链接里讲的很详细:

https://www.runoob.com/python/python-object.html

      在这里我就简单的说说关于类的操作:

1、创建类:

class Cat(): #这个括号在没有继承其他类时可以不加
    #类体
    def eat(self):# self:指的是调用该函数的对象        print('小猫爱吃鱼')
        print(self)
    def drink(self):
        print('小猫要喝水')
        print(self)
# 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,
按照惯例它的名称是 self。

2、创建实例对象:

cat = Cat()
print(cat)
cat.eat()
cat.drink()
输出:
<__main__.Cat object at 0x000001ECBA73A6D8>
小猫爱吃鱼
<__main__.Cat object at 0x000001ECBA73A6D8>
小猫要喝水
<__main__.Cat object at 0x000001ECBA73A6D8>

3、类的内置属性就是魔法方法,魔法方法我特意做了个总结,在另一篇博文里。

4、添加和获取对象属性

'''
1)、类外面添加属性语法:
对象名.属性名=值
2)、类外面获取对象属性
对象名.属性名
3)、在类里面获取对象属性
'''

class Washer():
    def wash(self):
        print('洗衣付')
        # 类里面获取实例属性        
        print('洗衣服的宽度%s'%self.width)
        print('洗衣服的高度%s'%self.height)

#创建对象
haer1 = Washer()
# 添加属性
haer1.width = 400haer1.height = 50
# 获取属性
print('洗衣服的宽度%s,洗衣服的高度%s'%(haer1.width,haer1.height))
haer1.wash()

输出:
洗衣服的宽度400,洗衣服的高度500
洗衣付
洗衣服的宽度400
洗衣服的高度500

5、类的继承

class Parent:        # 定义父类
   parentAttr = 100
   def __init__(self):
      print "调用父类构造函数"
 
   def parentMethod(self):
      print '调用父类方法'
 
   def setAttr(self, attr):
      Parent.parentAttr = attr
 
   def getAttr(self):
      print "父类属性 :", Parent.parentAttr
 
class Child(Parent): # 定义子类
   def __init__(self):
      print "调用子类构造方法"
 
   def childMethod(self):
      print '调用子类方法'
 
c = Child()          # 实例化子类
c.childMethod()      # 调用子类的方法
c.parentMethod()     # 调用父类方法
c.setAttr(200)       # 再次调用父类的方法 - 设置属性值
c.getAttr()          # 再次调用父类的方法 - 获取属性值

输出:
调用子类构造方法
调用子类方法
调用父类方法
父类属性 : 200


多继承:
class A:        # 定义类 A
.....

class B:         # 定义类 B
.....

class C(A, B):   # 继承类 A 和 B
.....

你可以使用issubclass()或者isinstance()方法来检测。

issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup)

isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。

6、方法重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法:

class Parent:        # 定义父类
   def myMethod(self):
      print '调用父类方法'
 
class Child(Parent): # 定义子类
   def myMethod(self):
      print '调用子类方法'
 
c = Child()          # 子类实例
c.myMethod()         # 子类调用重写方法

输出:
调用子类方法


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2020-04-12 22:18:21

修改时间:2020-04-12 22:42:53

查看次数:46

评论次数:0