python类和对象

# #usr/bin/python
# #-*-coding:utf-8-*-
# # 对象的特征--属性
# # 每个对象的每个属性都有特定值
# # 方法(函数):对象执行的操作
# # 对象:用来描述客观事物的一个实体,有一组属性和方法组成
# # 类:具有相同属性和方法的对象的集合
# # 对象:万物皆对象
# # 类和对象的关系:类是对象的模板,对象是类的实例
# # 语法:
# # class类名:
# # 属性:
#
# # class person:
# #     #属性  方法
# #     def eat(self):#def声明方法的标识  eat函数名 方法名 ()形参列表 形参:形式列表  self第一个参数 默认是当前对象的引用=地址指向
# #         print('人在吃饭')
# #     def drink(self):
# #         print('人在喝')
# # if '__main__'.__eq__(__name__):
# #     chen=person()
# #     chen.eat()
# #     chen.drink()
#
# class person:
#     def __init__(self,v_name,v_age):#初始化对象方法
#         #创建一个属性叫name  并且把形参v_name赋值给了name
#       self.name=v_name
#       self.age=v_age
#     def say(self):
#         print('hello')
# #生成对象
# chen=person()
# chen.name="陈"
# chen.age=23
# chen.say()
#        #  __str__():#重写
#        # return
# def __del__(self):
#     print('对象被删除')

# sys.getrefcount()返回,从2开始
# 面向对象的三大特征:封装  继承  多态
class person:
    def _int_(self):
        self.name='打的'
        self.age=20
    def show(self):
        print('姓名:'+self.name+'年龄:'+str(self.age))
    @classmethod  #类方法
    def sayhello(cls):'''
     类方法更倾向于 : 工具方法  不需要重复创建对象
        不是以对象的形式调用
        :return: 
        '''
    print('这是一个person类')
    '''
    一般情况下 静态方法会单独放在一个模块
    '''
    @staticmethod  #静态方法
    def sayhi(name):
        print(name+'hi')
# 类属性 :是对象共有的
if '__main__' == __name__: #都是双下划线
    # 实例对象.__class__.类属性=
    # person.phone='110'
    a=person()
    a.name='说'
    a.age=20
    # a.gender='男'
    a.show()
    a.__class__.phone='151654848'
    print(a.__class__.phone)
    person.sayhello()
    person.sayhi('')

#类方法: 在方法上添加@classmethod

你可能感兴趣的:(python类和对象)