首页 > 编程语言 >Python:类

Python:类

时间:2023-01-12 12:00:45浏览次数:62  
标签:__ name restaurant Python self cat def

太久没写Python的程序了类的内容忘记了,这里写下回忆一下

1 Python-类属性

类有一个特殊的方法叫做构造函数,用作定义实例对象的属性,其必须被命名为__innit__()(注意其前后下划线都是两个),括号内参数数量没有限制,但是第一位必须是self其用于表示对象自身,其将属性的值绑定在实例对象上。

class CuteCat:
    def __init__(self):
        self.name = "Lambtom"

上述代码说明了对象name属性的值。

class CuteCat2:
    def __init__(self):
        name = "Lambtom"

若是上述写法,Python会觉得只是在给普通的name变量赋值,该值将不会成为对象的属性。

我们实例化对象:

cat1 = CuteCat()
#输出cat1的name属性
cat1.name
#输出:
'Lambton'

若是CuteCat2类:

cat1 = CuteCat2()
#输出cat1的name属性
cat1.name
#输出:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Untitled-1.ipynb Cell 4 in <module>
      1 cat2 = CuteCat1()
----> 2 cat2.name

AttributeError: 'CuteCat1' object has no attribute 'name'

程序将会报错,该类中没有name这个属性。

更为灵活的编程,我们可以从参数获取name的值:

class CuteCat:
    def __init__(self, cat_name):
        self.name = cat_name

实例化对象:

cat = CuteCat("Jojo")
#输出:
'Jojo'

据此,你也可以添加更多的属性上去。

2 Python-类方法

在类中定义方法和定义普通的函数一样,只有两个差别,1.必须写在class中,2.第一个参数为self用于表示对象自身。

参数self可以让我们在方法里面去获取或修改和对象绑定的属性。

若猫咪叫唤的次数和年龄成正比则可以这样写:

class CuteCat:
    def __init__(self, cat_name, cat_age, cat_color):
        self.name = cat_name
        self.age = cat_age
        self.color = cat_color
    def speak(self):
        print("喵" * self.age)

调用方法:

cat1 = CuteCat("Jojo", 3, "橙色")
cat1.speak()
#输出:
喵喵喵

3 练习

1:餐馆  创建一个名为Restaurant 的类,为其方法__init__() 设置属性restaurant_name 和cuisine_type 。创建一个名为 describe_restaurant() 的方法和一个名为open_restaurant() 的方 法,前者打印前述两项信息,而后者打印一条消息,指出餐馆正在营业。 根据这个类创建一个名为restaurant 的实例,分别打印其两个属性,再调用 前述两个方法。

class Restaurant:
    def __init__(self, restaurant_name, cuisine_type):
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
    def describe_restaurant(self):
        print("餐馆名字:"+ self.restaurant_name + " " + "类型:" + self.cuisine_type)
    def open_restaurant(self):
        print("餐馆正在营业!")
R1 = Restaurant("玉芝兰","川菜")
R1.restaurant_name
#输出:
'玉芝兰'
R1.cuisine_type
#输出:
'川菜'
R1.describe_restaurant()
#输出:
餐馆名字:玉芝兰 类型:川菜
R1.open_restaurant()
#输出:
餐馆正在营业!

2:三家餐馆  根据为完成练习1而编写的类创建三个实例,并对每个 实例调用方法describe_restaurant() 。

R1 = Restaurant("玉芝兰","川菜")
R2 = Restaurant("粤江南","粤菜")
R3 = Restaurant("海底捞","火锅")
#输出:
餐馆名字:玉芝兰 类型:川菜
餐馆名字:粤江南 类型:粤菜
餐馆名字:海底捞 类型:火锅

3:用户  创建一个名为User 的类,其中包含属性first_name 和 last_name ,以及用户简介通常会存储的其他几个属性。在类User 中定义一 个名为describe_user() 的方法,用于打印用户信息摘要。再定义一个名为 greet_user() 的方法,用于向用户发出个性化的问候。 创建多个表示不同用户的实例,并对每个实例调用上述两个方法。

class User:
    def __init__(self, first_name, last_name, sex):
        self.first_name = first_name
        self.last_name = last_name
        self.sex = sex
    def describe_user(self):
        print("用户名:" + self.first_name + " " + "用户姓:" + self.last_name)
    def greet_user(self):
        if self.sex == "男":
            print("欢迎" + self.last_name + "先生")
        else:
            print("欢迎" + self.last_name + "女士")

U1 = User("小明", "王", "男")
U2 = User("小黑", "李", "女")

U1.describe_user()
U1.greet_user()
U2.describe_user()
U2.greet_user()
#输出:
用户名:小明 用户姓:王
欢迎王先生
用户名:小黑 用户姓:李
欢迎李女士

参考

标签:__,name,restaurant,Python,self,cat,def
From: https://www.cnblogs.com/TTS-TTS/p/17046137.html

相关文章

  • Python-wxauto自动发送消息或文件
    1、安装wxauto和pyautogui库,pip安装即可。pipinstallwxautopipinstallpyautogui2、登录微信 3、编写代码importtimefromwxautoimportWeChatimportpya......
  • 用python虚拟环境安装jupyter notebook
    一、安装python虚拟环境以及在虚拟环境中安装jupyter1、创建python虚拟环境,命名为py_venv-onepython-m-venvpy_venv-one2、进入并激活虚拟环境进入Scripts文件夹ac......
  • Python 包离线使用
    导出本地依赖的所有包,并下载到packages目录下piplistpipfreeze>requirements.txtpipdownload-dpackages-rrequirements.txt将packages文件夹和requireme......
  • python--操作excel表格,openpyxl模块
    简介openpyxl是一个非常强大的读写Excel2010xlsx/xlsm/xltx/xltm的Python库,简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有官方......
  • python false和False
    true=Falsedefwazzup():"""假亦真时真亦假"""false=TrueorFalsedeftrue():nonlocalfals......
  • 全面了解Python的变量与基本数据类型
    (全面了解Python的变量与基本数据类型)1保留字和标识符1.1保留字保留字是Python语言中已经被赋予了特定意义的单词,写代码或开发过程中不能使用这些单词作为用户的变......
  • ubuntu下配置django+apache+mysql+mod_python+Python
    网上有N种安装方法,我都试过,没有一个最后能成功,浪费了一下午的时间,终于搞定,1.installPython最新的Ubuntu操作系统是含有Python的,可以通过Python--version查看的:lab@lab:~......
  • myeclipse python插件安装和环境配置(Windows7下)
    1.下载必备的软件和插件:python:​​http://www.python.org/getit/​​pydev:​​http://pydev.org/download.html​​ 安装python,在myeclipse......
  • [转]Python PDF文件转png图像文件
    13个有趣的Python高级脚本:PythonPDF文件转png图像文件# PDF to Imagesimport fitzpdf = 'sample_pdf.pdf'doc = fitz.open(pdf)for page in doc: ......
  • Python飞机大战,Pygame入门,源码
    1、pep8语法规范遵循语法规范,可以让我们的代码可读性更好,更容易融入新的开发环境。大多数语法规范可以使用alt+ctrl+L进行格式化但是很多规范还是要靠自己调整2、飞机......