Python语法基础(十):类

一.类的属性和方法:

1.Python的命名规范

  • 模块名:
    Python的文件称作模块(Module),模块名称用小写字母表示,多个单词之间用_隔开,如:my_python.py

  • 类名:
    首字母大写:MyClass

  • 方法名:
    如:get_data()
  • 私有方法:
    以下划线开头,如:_get_name()
  • 变量
    小写,用_隔开。如:my_var
  • 全局变量:
    全部大写,如:TITLE

2.创建类的示例

class Dog(object):
    '''
    关于“狗”的类
    '''


    def __init__(self, name, age):
        '''
        构造函数
        '''
        self.name = name
        self.age = age

    def sit(self):
        '''
        坐下方法
        '''
        print(self.name + '坐下')

    def bark(self):
        '''
        狗叫方法
        '''
        print(self.name + '正在叫')

my_dog=Dog('小狗', 3)
my_dog.bark()
my_dog.sit()  

输出:

小狗正在叫
小狗坐下

注意:在类中写调用代码时,一定要顶头写,不要缩进。因为住有缩进的代码,是属于Dog类中的方法,在类初始化的时候会被执行到。顶头写的代码,是跟Dog类平级的代码。

3. 初始化类的属性值

在构造函数中,可以为类的属性设置默认值。

 def __init__(self, name, age):
        '''
        构造函数
        '''
        self.name = name
        self.age = age
        #设置默认值
        self.weight = 0

在方法中调用这个默认值:

 def get_weight(self):
        print(self.name+'的体重是:'+str(self.weight))

二.继承

继承使得子类可以使用父类的属性和方法。

1.继承的实现示例

父类:

class Dog(object):
    '''
        关于“狗”的类
    '''


    def __init__(self, name, age):
        '''
                    构造函数
        '''
        self.name = name
        self.age = age
        self.weight = 0
    def sit(self):
        '''
                    坐下方法
        '''
        print(self.name + '坐下')

    def bark(self):
        '''
                    狗叫
        '''
        print(self.name + '正在叫')
    def get_weight(self):
        print(self.name + '的体重是:' + str(self.weight))

子类:

class SpottedDog(Dog):
    def __init__(self,name,age):
        ''' Python2.7版以上用下面的方法'''
        #super(SpottedDog,self).__init__(name,age)
        super().__init__(name,age)
        self.skin = 'spot'

    def show_Dog(self):
        ''' 调用父类的属性'''
        print(self.name+'的皮肤是'+self.skin+',年龄是'+str(self.age)+',体重是'+str(self.weight))

    ''' 重写父类方法 '''   
    def bark(self):
         print(self.name+'汪汪叫~')

spotedDog =  SpottedDog('斑点狗',2)
spotedDog.show_Dog()
'''调用父类的方法'''
spotedDog.bark()

输出:

斑点狗的皮肤是spot,年龄是2,体重是0
斑点狗汪汪叫~

2.如何继承:

  • 通过class SpottedDog(Dog):传入父类的类名
  • 通过super()方法完成子类和父类的关联

注:Python2.7版以上用super(SpottedDog,self).__init__(name,age),第一参数是子类类名,第二个参数时子类对象。

3.父类方法的重写

当父类的方法不满足子类模拟实物行为的时候,可以对其重写,来满足需求。

如何重写方法?
- 方法名必须和父类中的一致
- 方法体中的内容可以重新修改

重写父类bark()方法示例:

    def bark(self):
         print(self.name+'汪汪叫~')

三.导入类

注:如果在Eclipse中导入任何类都报错的时候,需要在该项目属性中配置PyDev中的

1.在别的模块中导入单个类

示例:在my_dog.py中导入dog.py中的类:

form dog import Dog
'''使用引入的类'''
my_dog = Dog('看门狗','4')

2.在别的模块中导入多个类

示例:在my_dog.py中导入dog.py中的Dog类和SpottedDog类:

form dog import Dog , SpottedDog

3.导入整个模块

示例:在my_dog.py中导入dog.py

import dog

my_dog = dog.Dog('看门狗','5')

4.导入模块中的所有类

注:尽量不用此种方式

示例:在my_dog.py中导入dog.py

form dog import *

my_dog = dog.Dog('看门狗','6')

猜你喜欢

转载自blog.csdn.net/x541211190/article/details/79020814