`

Python34-04-oop

阅读更多

##添加多行注释:Alt + 3

##取消多行注释:Alt + 4

##IDLE菜单栏的Options -> Configure IDLE… -> Keys选项卡

 

#类

##class Bird(object):

##    have_feather = True

##    way_of_reproduction  = 'egg'

    

##summer = Bird()

##print (summer.way_of_reproduction)

##括号中的object,当括号中为object时,说明这个类没有父类

 

#动作

class Bird(object):

    have_feather = True

    way_of_reproduction = 'egg'

    def move(self, dx, dy):

        position = [0,0]

        position[0] = position[0] + dx

        position[1] = position[1] + dy

        return position

 

summer = Bird()

print ('after move:',summer.move(5,8))

 

#子类--继承(inheritance)

class Chicken(Bird):

    way_of_move = 'walk'

    possible_in_KFC = True

 

class Oriole(Bird):

    way_of_move = 'fly'

    possible_in_KFC = False

 

summer = Chicken()

print (summer.have_feather)

print (summer.move(5,8))

#在类定义时,括号里为了Bird。这说明,Chicken是属于鸟类(Bird)的一个子类,即Chicken继承自Bird。自然而然,Bird就是Chicken的父类。Chicken将享有Bird的所有属性

 

#调用类的其它信息---通过self,调用类属性

##class Human(object):

##    laugh = 'hahahaha'

##    def show_laugh(self):

##        print (self.laugh)

##    def laugh_100th(self):

##        for i in range(100):

##            self.show_laugh()

##

##li_lei = Human()          

##li_lei.laugh_100th()

 

#__init__()方法--特殊方法(special method)创建对象时,Python会自动调用这个方法。这个过程也叫初始化

class happyBird(Bird):

    def __init__(self,more_words):

        print ('We are happy birds.',more_words)

 

summer = happyBird('Happy,Happy!')

 

#对象的性质

class Human(object):

    def __init__(self, input_gender):

        self.gender = input_gender

    def printGender(self):

        print self.gender

 

li_lei = Human('male') # 这里,'male'作为参数传递给__init__()方法的input_gender变量。

print li_lei.gender

li_lei.printGender()

 

 

##动态类型(dynamic typing)

##Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关

##引用和对象分离,是动态类型的核心。引用可以随时指向一个新的对象

##a = 3

##a = 'at'

##第一个语句中,3是储存在内存中的一个整数对象。通过赋值,引用a指向对象3。

##第二个语句中,内存中建立对象‘at’,是一个字符串(string)。引用a指向了'at'。此时,

##    对象3不再有引用指向它。Python会自动将没有引用指向的对象销毁(destruct),释放相应内存

 

##从动态类型看函数的参数传递

def f(x):

    x = 100

    print (x)

 

a = 1

f(a)

print (a)

 

##如果参数是不可变(immutable)的对象,a和x引用之间相互独立,对参数x的操作不会影响引用a

##如果传递的是可变(mutable)的对象,那么改变函数参数,有可能改变原对象。

 

def f1(x):

    x[0] = 100

    print (x)

 

a1 = [1,2,3]

f1(a1)

print (a1)

分享到:
评论

相关推荐

    08-python-oop简介-使用 OOP 对森林火灾建模-对象

    在Python编程语言中,面向对象编程(Object-Oriented Programming,OOP)是一种重要的编程范式,它基于“对象”的概念。在这个模型中,数据和操作数据的方法被封装在一起,形成了一个独立的实体,即对象。这个教程将...

    Python库 | oop-ext-0.3.2.tar.gz

    《Python库oop-ext-0.3.2:面向对象编程扩展》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,帮助我们高效地完成各种任务。今天我们要探讨的是名为"oop-ext-0.3.2"的Python库,它是一个针对面向...

    Python3-廖雪峰.pdf

    15. 模块和面向对象编程:模块允许你将代码组织进不同的文件中,面向对象编程(OOP)是利用类和对象来组织代码的一种方式。 16. 错误、调试和测试:这部分内容涉及如何处理代码中的错误,进行调试,以及编写和运行...

    Python库 | oop-ext-0.2.0.tar.gz

    标题中的"Python库 | oop-ext-0.2.0.tar.gz"表明这是一个与Python相关的库,名为"oop-ext",版本号为0.2.0,并且它被压缩成一个tar.gz文件。这种格式是Linux和Unix系统中常见的归档和压缩方式,通常用于分发软件包。...

    Python-100-Days-master.zip

    《Python编程:100天从入门到精通》是一份全面且深度的Python学习资源,旨在帮助初学者和有一定基础的开发者系统性地提升Python技能。这个压缩包"Python-100-Days-master.zip"包含了为期100天的学习计划,每天都有...

    python-3.8.0-amd64.rar

    Python支持面向对象编程(OOP),意味着可以创建类和对象,实现封装、继承和多态等概念。动态类型系统意味着程序员不需要在声明变量时指定其数据类型,Python会在运行时自动处理。这种灵活性使得Python非常适合快速...

    python-oop:Python面向对象编程文章目录和链接

    python-oop:Python面向对象的编程 有关所有新数据,请参见Wiki !!! 核心,但仍然是附加组件 通常会忘记 。 但是,在许多情况下,最好使用词典。 附加组件 traitlite-是的,这与traitlets不同! 和 。 原子 ...

    Python基础--第二版--中文&英文

    此外,面向对象编程(OOP)的概念也会被详细阐述,包括类的定义、对象的创建、继承、多态等,这些都是Python中实现复杂逻辑的关键工具。 文件操作是Python编程中不可或缺的一部分,本书会教授如何读写文件,处理...

    Python3-廖雪峰.rar

    类和对象是OOP的核心,廖雪峰的教程会解释如何定义类、创建对象以及理解类与对象之间的关系。继承、封装和多态这三大面向对象原则在Python3中也有清晰的体现。 异常处理是Python3中处理错误和异常的关键机制。try-...

    let's-python-源码

    6. "python-04-exercise3": 又一个练习文件,可能涉及数组、列表、元组或字符串等数据结构的操作。 7. "python-13-exercise9": 同样是练习文件,可能包含更复杂的逻辑,比如函数的使用、模块的导入或异常处理。 8....

    PyPI 官网下载 | bvx-oop-0.0.8.tar.gz

    "PyPI 官网下载 | bvx-oop-0.0.8.tar.gz"这个标题表明我们关注的是一个从PyPI下载的名为“bvx-oop”的Python库,其版本号为0.0.8,打包格式为tar.gz。 描述中提到的“资源全名:bvx-oop-0.0.8.tar.gz”,这进一步...

    SoftUni-Python-OOP-February-2021:Python OOP

    课程详情Python OOP课程将教您面向对象编程(OOP)的原理,使用类和对象,使用面向对象的建模以及构建类层次结构。 将研究OOP的基本原理,例如抽象(接口,抽象类),封装,继承和多态性。 我们将介绍最常用的设计...

    Python项目-实例-20 快递查询.zip

    除此之外,为了使项目具有更好的可维护性和扩展性,你需要了解Python的基本设计原则和最佳实践,如模块化编程,错误处理,以及面向对象编程(OOP)。通过合理地组织代码,创建类来封装功能,可以提高代码的复用性和...

    Python项目-实例-18 五星红旗.zip

    在编码实践中,Python的面向对象编程(OOP)原则可能会被应用,如定义类来封装五星红旗的属性和行为。此外,为了提高代码可读性和复用性,模块化编程也十分重要,可以将功能分解为多个独立的函数或类。 总之,...

    python源码-案例框架-实例-17 贺卡.zip

    这个实例旨在帮助学习者理解如何利用Python的基本语法、面向对象编程(OOP)原则以及可能涉及的图形用户界面(GUI)库,如Tkinter或PyQt。让我们深入探讨这个实例所涵盖的关键知识点。 首先,Python是一种高级编程...

    Python-100-Days.zip

    在这里,学习者将被引入更加复杂的编程概念,如面向对象编程(OOP)的深入探讨。我们会学习到类与对象的创建、继承、封装以及多态性的概念,这些都是理解面向对象设计的关键。在这一部分,异常处理、文件操作和正则...

    Python编程-核心知识

    面向对象编程(OOP)是Python的另一大特色。类和对象的概念使得我们可以模拟现实世界中的实体,并通过继承、多态和封装实现代码复用和抽象。理解类的定义、实例化、方法以及特殊方法(如__init__、__str__)是进阶...

Global site tag (gtag.js) - Google Analytics