Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法
Posted DQ_CODING
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法相关的知识,希望对你有一定的参考价值。
内置属性
创建类时系统自动创建的属性
# 内置属性:dir(对象),列出所有的内置属性
class Person(object):
'''Person类1'''
# Person类2
__slots__ = ('name', 'age')
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print("eat!!!")
p = Person('name',17)
print(dir(p))
# 输出
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'eat']
print(p.__class__)
#将对象所支持的所有属性和函数列出。
print(p.__dir__)
#显示的是多行注释
print(p.__doc__)
print(Person.__doc__)
#主方法
print(p.__module__)
对象属性
类属性
# 类属性
class Person(object):
type = 'mm'
__slots__ = ('name', 'age')
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print("eat!!!")
p=Person('name',19)
#通过对象和类名调用类属性
print(p.type)
print(Person.type)
#只能通过类名修改类属性
Person.type='upq'
print(Person.type)
print(p.type)
#输出
# mm
# mm
# upq
# upq
私有属性
# 私有属性
class Teacher():
def __init__(self):
self.__name='ert'
self.__level=99
#获取老师的等级
def get_level(self):
return self.__level
#获取名字
def get_in_name(self):
return self.__name
def set_in_name(self,name):
self.__name=name
t=Teacher()
# #获取私有属性1
print("name is",t._Teacher__name) #输出GG
t._Teacher__name="AA" #被改变了
print("name is",t._Teacher__name) #输出AA
#获取私有属性2
t.set_in_name('pppp')
print(t.get_in_name())
#输出
# name is GG
# name is AA
# pppp
私有方法
#function:私有方法
class Person(object):
def __init__(self):
self.__p=100
def __xx(self):
print(self.__p)
p1=Person()
print(p1._Person__p)
p1._Person__xx()
实例方法
类方法
静态方法
总结:实例方法 & 类方法 & 静态方法
静态方法:当用不到当前类和对象属性时(感觉与当前类没关系一样),可以定义为静态方法(一个定义在类中的普通方法)
# author:dq
# project:PythonProject
# date:2021年10月21日
# function:实例方法 & 类方法 & 静态方法
class Person():
type = 'type'
__slots__ = ('name', 'age')
def __init__(self, name, age):
self.name = name
self.age = age
# 实例方法
def common(self):
print('common')
# 类方法
@classmethod
def classmethod(cls):
cls.type = 'class type'
print(cls.type)
print('classmethod')
# 静态方法
@staticmethod
def staticmethod():
print('static')
p=Person('name',77)
#对象调用
p.common()
p.classmethod()
p.staticmethod()
#类调用
Person.common(p)
Person.classmethod()
Person.staticmethod()
以上是关于Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法的主要内容,如果未能解决你的问题,请参考以下文章
28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性
28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性