python面向对象

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路python面向对象,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

面向对象

# 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。


# 在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。


# class关键字是定义类的关键,括号是继承额类,支持多继承
class Student():
       pass

实例

# 定义类之后就可以通过类来创建实例,类名也可以获取类本身
print(Student)

# 类复制给变量,和方法一样类通过类名和括号调用,括号传递构造方法的参数
student=Student()
print(student)
<class '__main__.Student'>
<__main__.Student object at 0x0000022BBF77C790>

构造方法

# 类的__init__是构造方法
class Student(object):
    def __init__(self,name,id,address):
        self.name=name
        self.id=id
        self.address=address
    def newStudent(self):
        print("Student(name={0},id={1},address={2})".format(self.name,self.id,self.address))

student=Student('zhansna',12,'beijin')
student.newStudent()
Student(name=zhansna,id=12,address=beijin)
# 在构造方法中定义的变量为实例变量,只有在实例中才可以访问

类方法

# 类方法和普通的函数相比,只有一点不同,类方法第一个参数永远this,并且调用时不用传递该参数。

# this表示类本身

class Student(object):
    def __init__(self,name,id,address):
        self.name=name
        self.id=id
        self.address=address
    def newStudent(self):
        print("Student(name={0},id={1},address={2})".format(self.name,self.id,self.address))
        
# newStudent就是类方法,通过实例化类来调用类方法
Student('lihua',2,'tianjin').newStudent()
Student(name=lihua,id=2,address=tianjin)
# 方法处理定义在类中还可以定义在构造方法中为实例方法,只有在实例中才可以访问,不常用。


# 类方法可以通过_来封装

类变量

# 类的变量可以定义在类中为成员变量
# 类的变量可以定义在构造方法中为实例方法,创建实例才可以访问
# 类的变量定义在方法中为局部方法

class Person(object):
    __name__=None
    __age__=None
    
    def __init__(this,name,age):
        this.__name__=name
        this.__age__=age
    def showPerson(this):
        print('Person(name={0},age={1})'.format(this.__name__,this.__age__))
Person('lihua',22).showPerson()
Person(name=lihua,age=22)

继承

# class关键字定义类后,括号中写该类的继承类
class Student():
    pass

# 未定义默认object,所有类都继承object

class Animal(object):
    name=None
    shout=None
class Dog(Animal):

封装

在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

要定义私有变量只能是___开头

Person('zhansan',22).__name__
'zhansan'
class Person1(object):
    name=None
    __age__=None
    __id=None
    def __init__(self,name,age,id):
        self.name=name
        self.__age__=age
        self.__id=id
person1=Person1('zhansan',22,123456789)
print(person1.name)
print(person1.__age__)
print(person1.__id)

zhansan
22



---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

~\AppData\Local\Temp/ipykernel_8584/1129592823.py in <module>
     10 print(person1.name)
     11 print(person1.__age__)
---> 12 print(person1.__id)


AttributeError: 'Person1' object has no attribute '__id'
# 类变量可以在构造方法中定义,实例变量只能在实例中访问

# 通过定义setter和getter方法对成员变量更改和获取

多态

# 继承的最大的好处是子类获得了父类的全部功能。

# 子类也可以增加一些额外的方法,或对父类的方法重写

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156288.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!