Python:函数和类

函数的有点:1、使用函数可以将代码块与主程序分离;2、通过给函数指定描述性名称,可让主程序容易理解得多

根据约定,在Python中,类的名称的首字母是大写的,当然,这只是约定,即类名称首字母也可是小写的

用类实例做为类属性:使用代码模拟实物时,可能会发现自己给类添加的细节越来越多:属性和方法清单以及文件都越来越长。在这种情况下,可以将类的一部分作为一个独立的类提取出来,以此,把将大型类拆分成多个协同工作的小类

重写父类的方法:对于父类的方法,只要它不符合子类模拟的实物的实物的行为,都可对其进行重写。为此,可在子类这种定义一个这样的方法,即它与要重写的父类方法同名。这样,Python将不会考虑这个父类方法,而只关注在子类中定义的相应方法

类中的特殊方法 __init__()在每次根据类创建实例时,都会被自动运行,可以说,__init__()方法的作用就在于创建类实例,这个方法的开头和末尾各有两个下划线

类的各个属性都是在方法__init__()中定义和初始化的

类中定义的每一个方法都会有形参self,包括__init__(),而在调用与类相关联的方法时都将自动传递实参self,它是一个指向实例本身的引用,作用在于让类方法通过实例来访问类中的属性和方法

继承:编写类时,并非总是要从空白开始。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法以区分子类和父类

创建子类时,父类必须包含在当前Python程序文件中,且位于子类前面。定义子类时,必须在括号内指定父类的名称,而创建父类实例的信息由子类的__init__()所接受

将父类和子类关联起来的是方法super()super()调用于子类方法__init__()中的首行:super().__init__(a,b,c) # 初始化父类的属性,a,b,c由子类方法__init__()提供

函数定义:

 # 函数应该定义在任何Python语句的最前面
 def greet_user():
    """显示简单的问候语"""
    print("Hello!")

类的定义与使用:

class Dog():
    """一次模拟小狗的简单尝试"""

    def __init__(self, name, age):
        """定义和初始化类属性name和age"""
        self.name = name
        self.age = age

    def sit(self):
        """模拟小狗被命令时蹲下"""
        print(self.name.title() + " is now sitting.")

    def roll_over(self):
        """模拟小狗被命令时打滚"""
        print(self.name.title() + " rolled over!")

# 根据类Dog创建实例
my_dog = Dog('willie',6)

# 通过句点表示法来访问类属性和调用类方法
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
my_dog.roll_over()

类的继承:

class Dog():
    def __init__(self, name, age):
          --snip--

class Color_dog(Dog):
    """一个色狗"""

    def __init__(self, name, age, color):
        """初始化父类的属性"""
        super().__init__(name, age)
        """定义和初始化子类的属性"""
        self.color = color

    def color_of_dog(self):
        print("The color of dog is " + self.color + ".")

# 创建子类实例my_black_dog 
my_black_dog = Color_dog('jonh', '999', 'black')

# 访问子类的属性和调用子类的方法
print("My dog's name is " + my_black_dog.name.title() + ".")
print("My dog's color is " + my_black_dog.color.title() + ".")
print("My dog is " + str(my_black_dog.age) + " years old.")
my_black_dog.color_of_dog()

猜你喜欢

转载自blog.csdn.net/yiminghd2861/article/details/83149395