200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 在python面向对象编程中 属性分为_Python-面向对象编程(1.概述)

在python面向对象编程中 属性分为_Python-面向对象编程(1.概述)

时间:2024-05-02 04:05:19

相关推荐

在python面向对象编程中 属性分为_Python-面向对象编程(1.概述)

1.在 Python 中,面向对象编程主要有两个主题,就是类和类实例

a.类和对象是相互关联的,类是实例的定义,实例是类的具像化。

b.类分为新式类和经典类

新式类:(注 base 是继承的父类,object 是所有类的父类)

class objectname(object):

define

经典类:

class objectname:

define

c. 实例化一个类,其实就是函数调用然后赋给一个变量,如果不赋值给一个变量,会被回收掉

objectvariable = objectname()

#coding:utf-8

"""Python 中的类 = 属性(数据)+方法类对象简称为类,实例对象简称实例"""

class Person():

age = 18

def study(self):

print "go to school"

def love(self):

print "marry"

p = Person()

print p.age

p.study()

p.love()

#coding:utf-8

"""经典类和新式类"""

class NewClass(object):#新式类 带object参数表示继承object

pass

class ClassicClass():#经典类 不带object参数表示不继承object

pass

p = NewClass()

NewClass.c = 100

p.a = 1

p.b = 2

print p.a

print p.b

print p.c

#coding:utf-8

"""一切都可以看作类类的三个特性 封装,继承,多态"""

list1 = [1,2,3]

list2 = list('hello')#list也是个类,传入参数给构造器

print list2

print issubclass(list,object)

print issubclass(dict,object)

#coding:utf-8

"""构造器"""

class Foo():

num = 5

def __init__(self,x,y):# self 只是一个标记,可以改成任意的字符

self.x = x

self.y = y

def print_xy(self):

print self.x,self.y

def print_num(self):

print self.num

print Foo.num

p = Foo(3,4)

p.print_xy()

p.print_num()

2.方法:改进一个类的手段就是添加功能也叫做方法,方法在类定义的时候定义然后只能被实例调用。所以调用一个类的方法的步骤是:

a.定义类以及方法

class foo(object):

"""define a class named foo"""

def print_x(self):

print "This is a class named foo"

note:***self ***代表实例对象本身,当实例调用方法的时候,是由解释器自动传入方法的

静态方法和类方法不需要self,类方法需要的是类而不是实例

b.实例化一个类

foo_one = foo() """就像函数一样去实例化,不使用new关键字"""

c.实例对象调用

foo_one.print_x()

3.创建一个类

a.关于__init__,init 可以看成是构造器(这样理解,并不是构造)它在实例化的时候自动调用,自动传入参数self以及其他(如果有)完成一些初始化的工作,就当成是一个特殊方法吧带有init的类

class foo(object):

def __init__(self,name,phone):

self.name = name

self.phone = phone

def updatephone(self,phone):

self.phone = phone

note:init 有三个参数,但是只要传入name,phone 这两个参数,self实例化的时候自动传入

4.创建实例

foo1 = foo('zhangsan',123456)

foo2 = foo('lisi',123456)

note:init 可以看成是实例化时类对其隐式调用,因为参数是完全一样的。如果存在默认参数可以不传入

5.访问实例属性

foo1.name

foo1.phone

foo2.name

foo2.phone

6.方法调用

foo1.updatephone('22222')"""updatephone需要两个参数,

一个self自动传入。另外可以通过访问.phone属性来验证该方法是否成功"""

7.创建子类

如创建一个foo的子类,

class sub_foo(foo): """需要将父类 foo写在括号中"""

def __init__(self,name,phone.email):"""如果重构了init,将不在执行父类中的init"""

foo.__init__(self,name,phone)"""这里的self是显示调用在实例化的时候传给父类"""

self.email = email

def updateemail(self,email):

self.email = email

note:子类继承父类的属性和方法,并且可以定制新方法而不会影响父类

8.使用子类

foo2 = sub_foo('lisi','123234','')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。