python面向对象编程中方法和属性_Python面向对象编程之类属性方法

面向对象是一种编程方式,此编程方式的实现是基于对类和对象的使用。面向对象三大特性:封装、继承和多态。本篇将详细介绍Python类的成员、成员修饰符、类的特殊成员。一起来看看Python面向对象编程之类属性方法吧。

类是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中);对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数。

Python内置类属性__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ :类的文档字符串

__name__: 类名

__module__:

类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__ 等于

mymod)

__bases__ : 类的所有父类构成元素(包含了以个由所有父类组成的元组)

Python内置类属性调用实例如下:#!/usr/bin/env python

# coding:utf-8

__author__ = "风轻情淡"

# Python使用class关键字创建类

class Person:

"""人这个类的基类"""

# Python类中的静态变量

country = "中国"

# Python类的初始化方法

def __init__(self, name, age):

# Python类中的属性

self.name = name

self.age = age

# Python类中自定义的方法

def get_age(self):

print(self.age)

def get_name(self):

print(self.mame)

# 结果为:Person.__doc__: 人这个类的基类

print("Person.__doc__:", Person.__doc__)

# 结果为:Person.__name__: Person

print("Person.__name__:", Person.__name__)

# 结果为:Person.__module__: __main__

print("Person.__module__:", Person.__module__)

# 结果为:Person.__bases__: (,)

print("Person.__bases__:", Person.__bases__)

# 结果为:Person.__dict__: {'__module__': '__main__', '__weakref__': 

print("Person.__dict__:", Person.__dict__)

类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。继承完全可以理解成类之间的类型和子类型关系。

需要注意的地方:继承语法 class 派生类名(基类名)://... 基类名写作括号里,基本类是在类定义的时候,在元组之中指明的。

在python中继承中的一些特点:

1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。

2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数

3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。

如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。派生类的声明,与他们的父类类似,继承的基类列表跟在类名之后,如下所示:class SubClassName (ParentClass1[, ParentClass2, ...]):

'Optional class documentation string'

class_suite

实例代码:#!/usr/bin/env python

# coding:utf-8

__author__ = "风轻情淡"

class Parent:  # 定义父类

parentAttr = 100

def __init__(self):

print("调用父类构造函数")

def parentMethod(self):

print('调用父类方法')

def setAttr(self, attr):

Parent.parentAttr = attr

def getAttr(self):

print("父类属性 :", Parent.parentAttr)

class Child(Parent):  # 定义子类

def __init__(self):

print("调用子类构造方法")

def childMethod(self):

print("调用子类方法 child method")

c = Child()  # 实例化子类

c.childMethod()  # 调用子类的方法

c.parentMethod()  # 调用父类方法

c.setAttr(200)  # 再次调用父类的方法

c.getAttr()  # 再次调用父类的方法

类属性与方法

类的私有属性

__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时

self.__private_attrs。

类的方法

在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数

类的私有方法

__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用

self.__private_methods

你可能感兴趣的:(python面向对象编程中方法和属性_Python面向对象编程之类属性方法)