首页 / PYTHON / Python-面向对象 一
Python-面向对象 一
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python-面向对象 一,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3159字,纯文字阅读大概需要5分钟。
内容图文
![Python-面向对象 一](/upload/InfoBanner/zyjiaocheng/606/5e3927a63a6b4366abf54d5790fe6b67.jpg)
1.类
"""
类
声明一个类
class 类名:
类的内容
创建类的实例
实例名 = 类名()
添加实例的动态属性
类的实例.属性名 = xxx
"""
# 声明一个类
class Student:
# 类中方法默认有self参数,self代表实例本身
def study(self): # 成员方法
print("学习")
def sleep(self):
print("睡觉")
# 创建类的实例
s = Student()
# 给实例动态添加一个属性
s.name = "tony"
# 调用实例的方法
s.study()
s.sleep()
# 打印实例动态添加的属性
print(s.name)
2.构造方法
"""
初始化方法__init__
self:指的是实例(对象)本身
"""
class Person:
def __init__(self, name, age): # 构造方法(又叫魔法方法、初始化方法) 在创建对象的时候自动执行
print("init")
# 在构造方法中添加参数,使用self给实例添加属性指定为构造方法的参数,使得每个实例都拥有该属性,并在创建实例的时候可以赋值
self.name = name
self.age = age
# def __str__(self): # 该方法返回什么打印对象的时候就打印什么,不写该方法打印对象的时候输出的是对象在内存中的地址
# return "Person类"
def eat(self):
print("吃")
def sleep(self):
print("睡觉")
tony = Person("tony", 20)
print(tony.name)
print(tony)
3.私有属性、私有方法
"""
类的私有属性
声明方式
self.__属性名
类的私有方法
声明方法
def __方法名
"""
class Person:
def __init__(self):
self.name = "tony"
self.__age = 20 # 使用__属性名的方式声明一个私有属性,只有类的内部可以访问
def printInfo(self):
print(self.name, self.__age)
p = Person()
p.printInfo() # tony 20
p.__age = "21" # 该处修改的是共有属性,整个实例都可以进行访问
p.printInfo() # tony 20 该处打印的__age是私有属性,私有属性没有被影响到,与上一行代码中的__age仅仅是属性名相同
print(p.__age) # 21
4.类属性
"""
类属性
声明方式
class Person:
name = "tony" # 类属性,每一个该类的实例都可以对这个属性进行访问
__age = "20" # 私有类属性 如何访问:在类中使用类名.属性名进行访问
def __init__(self):
xxx
def xxx(self):
pass
"""
class Person:
name = "tony"
__age = 18
def printInfo(self):
print(Person.name, Person.__age)
print(Person.name) # tony
# print(Person.__age) # 报错,找不到该属性
p = Person()
p.printInfo() # tony 18
print(p.name)
5.静态方法
"""
静态方法:不引用实例属性,实例方法,可以使用类属性(不推荐使用类属性),是一个独立的个体。使用@staticmethod修饰
"""
class Person:
info = "HalloPython"
@staticmethod
def staticPrint():
print("我是静态方法")
Person.staticPrint() # 静态方法可以不使用实例进行调用,直接用类名.方法名的方式就可以进行访问
6.类方法
"""
类方法
使用@classmethod修饰
可以访问类属性,也可以间接的创建对象,来访问实例属性
"""
class Person:
age = 20
# 构造方法
def __init__(self):
self.name = "tony"
print("init")
@classmethod
def get_name(cls):
print(cls.age) # 类属性
print(Person().name) # 间接访问
Person.get_name()
7.属性方法
"""
把方法作为一个属性来访问
"""
# class Person:
# def __init__(self):
# self.__age = 0
# self.__height = 0
#
# def setPersonInfo(self, age, height):
# self.__age = age
# self.__height = height
#
# def getPersonInfo(self):
# return self.__age, self.__height
#
#
#使用属性方法之前对实例属性进行set,get
# p = Person()
# p.setPersonInfo(10, 170)
# print(p.getPersonInfo())
class Person:
def __init__(self):
self.__info = 0
@property
def PersonInfo(self):
return self.__info
@PersonInfo.setter
def setPersonInfo(self, info):
self.__info = info
#使用属性方法之后对实例属性进行set,get
p = Person()
p.setPersonInfo = 20, 170
print(p.PersonInfo)
内容总结
以上是互联网集市为您收集整理的Python-面向对象 一全部内容,希望文章能够帮你解决Python-面向对象 一所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。