ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python边学边练(6)面向对象、class

2021-09-15 22:02:22  阅读:157  来源: 互联网

标签:name Python self class age print my 边学边 def


文章目录


参考:b站:覃秉丰,书籍:清华大学出版社《python从入门到精通》
编译环境 python3 jupyter notebook (vscode等编译器对代码进行适当修改即可)

面向对象概述

对象,是一个抽象的概念,表示任意存在的事物。在python中一切都是对象,如字符串,函数,列表等。
类是封装这些对象的载体。
面向对象程序设计具有三大基本特征:**封装、继承、多态**。

类举例-生而为人

人要有名字,年龄,吃饭的动作,思考a+b的过程(就先这么定义四个吧。。)
class person: #“人”类
    name = 'ZK'
    age = 23
    def my_name(self):
        print('my name is : ',self.name)
    def my_age(self):
        print('my age is : ',self.age)
    def eat(self):
        print('I can eat')
    def think(self,a,b):
        print(a+b)

person1 = person()
print(person1.name)
print(person1.age)
print(person1.eat())
print(person1.think(2,8))

结果:

ZK
23
I can eat
None
10
None

Q:为什么会出现None?
参考博文
https://blog.csdn.net/qq_46018836/article/details/105168061
这个问题最简单的方法是使用return关键字
解决方法:

class person: #“人”类
    name = 'ZK'
    age = 23
    def my_name(self):
        print('my name is : ',self.name)
    def my_age(self):
        print('my age is : ',self.age)
    def eat(self):
       return 'I can eat'
    def think(self,a,b):
       return a+b

person1 = person()
print(person1.name)
print(person1.age)
print(person1.eat())
print(person1.think(2,8))

结果:

ZK
23
I can eat
10

创建__init__()方法

class person_n: #“人”类
    def __init__(self,name,age): #外部引入对象
        self.name = name
        self.age = age
    def my_name(self):
        print('my name is : ',self.name)
    def my_age(self):
        print('my age is : ',self.age)
    def eat(self):
       return 'I can not eat'
    def think(self,a,b):
       return a-b

person2= person_n('ZKK',25)
print(person2.name)
print(person2.age)
print(person2.eat())
print(person2.think(2,8))

运行结果:

ZKK
25
I can not eat
-6

类调用函数

person3= person_n(name='ZKKK',age=55)
person3.my_name()

结果:

my name is :  ZKKK

类的继承

class person: #“人”类
    def __init__(self,name='ZK',age = 18): #外部引入对象
        self.name = name
        self.age = age
    def my_name(self):
       return str('my name is : ')+self.name
    def my_age(self):
       return str('my age is : ')+self.age
    def eat(self):
       return 'I can not eat'
    def think(self,a,b):
       return a-b

class student(person): #student子类继承person父类,子类可以使用父类对象,同时子类自己也可以定义对象
    def __init__(self,grade,school):
        super().__init__() #父类初始化
        self.grade = grade
        self.school = school
        self.score = 100
        print('student init')
    def learn(self):
        return 'I am learning'
    def my_school(self):
        return str('my school is : ')+self.school
        
stu = student(grade=2,school='SHU')
print(stu.my_name())
print(stu.think(10,24))
print(stu.school)
print(stu.learn())
print(stu.my_school())

结果:

student init
my name is : ZK
-14
SHU
I am learning
my school is : SHU

标签:name,Python,self,class,age,print,my,边学边,def
来源: https://blog.csdn.net/qq_43172512/article/details/120317013

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有