• 初识类(一)


    面向对象编程是最有效的软件编写方法之一。在面向对象编程过程中,你编写表示显示世界中事物和情景的类,

    并基于这些类来创建对象。编写类时,可以定义一大类对象都有的通用行为。基于类创建对象时,每个对象都会

    自动具备这种通用行为。然后可以根据需要赋予每个对象独特的个性。

    创建和使用类:

    使用类集合可以模拟出任何东西

    class Dog():

        def __init__(self,name,age):

            self.name = name

            self.age = age

        def sit(self):

            print(self.name.title() + "is now sitting.")

        def roll_over(self):

            print(self.namge.title() + "rolled over!")

    note:

     1,定义了个类,叫做Dog(根据约定,python中首字母大写的名称代表类)

     2,方法__init__()

          类中的函数称为方法;(函数中的任何操作都可以在方法中使用)

          这里的__init__()是一个特殊的方法,每次根据Dog类创建实例的时候,Python都会自动运行它

          为了区分自动运行的方法和普通方法是:特殊方法的开始和结束都有两个下划线。

    3,在__init__()中,定义了三个形参(self,name,age) 在这里self是必不可少的,而且必须位于其他形参前面。

         为什么self形参必须在其他函数之前:因为python在执行这个方法的时候,self是自动传入的。因此我们在调用类的时候

         不需要传递self实参。

    使用这个类:

    my_dog = Dog('cisco',2)
    print("My dog's name is " + my_dog.name.title() + ".")
    print("My dog is " + str(my_dog.age) + " years old.")

    使用前面定义的类Dog,让python创建一条名字为“cisco”、年龄为“2”的小狗。遇到这行代码时,python使用实参“cisco”和2调用Dog中的方法__init__()

    方法__init__()没有显式的包含return语句,但Python会自动返回一个表示这个小狗的实例。

    >>> type(my_dog)
    <class '__main__.Dog'>

    访问实例中的属性:

    >>> my_dog.name
    'cisco'
    >>> my_dog.age
    2

    调用方法:

     根据类创建实例后,就可以用句点表示法来调用类中定义的任何普通方法。

    例如:

    >>> my_dog.sit()
    Cisco is now sitting.

    通过类来创建餐厅:

    class Resturant():
    def __init__(self,resturant_name,cuisine_type):
    self.resturant_name = resturant_name
    self.cuisine_type = cuisine_type

    def describe_resturant(self):
    print(self.resturant_name + " 是一家很有意境的餐馆。")
    def open_resturant(self):
    print(self.resturant_name + " 正在营业中 。")

    我的饭店 = Resturant("饭大王","中餐")

    我的饭店.describe_resturant()
    我的饭店.open_resturant()

    问?
    为什么其他方法需要通过句点表示法进调用,而__init__()不需要?
    答:
    因为__(双下划线)表示函数自动运行(在类中函数叫做方法)
  • 相关阅读:
    双向链表的创建,查找,删除
    atoi 函数自实现
    strcmp,strcpy,strcat,strncmp,strncpy,strncat,自实现精炼版本
    天生棋局(堆上申请二维空间的应用)
    使用二级指针,初始化一级指针
    指针数组的简单理解
    输入二进制数,输出10进制数
    阶乘循环联系题
    [剑指offer] 二叉搜索树的第k个节点
    二叉树的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/alben-cisco/p/6843004.html
Copyright © 2020-2023  润新知