python面向对象

(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

方法:类中定义的函数

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

语法:
class 类名:(类名要符合驼峰命名法)
 属性
 方法

对象的创建:属性引用和实例化

属性引用使用和 Python 中所有的属性引用一样的标准语法:obj.name

类对象创建后,类命名空间中所有的命名都是有效属性名。所以如果类定义是这样:

class MyClass
"""一个简单的类实例"""
    i = 12345
    def f(self):
        return 'hello world' # 实例化类
x = MyClass() # 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i)
print("MyClass 类的方法 f 输出为:", x.f())

以上创建了一个新的类实例并将该对象赋给局部变量 x,x 为空的对象。

执行以上程序输出结果为:

MyClass 类的属性 i 为: 12345
MyClass 类的方法 f 输出为: hello world

创建多个对象时,可以使用初始化方法__init__(self):系统自动调用初始化方法,先生成对象,在调用此方法,再将对象赋值给引用名

class Complex

def __init__(self, realpart, imagpart)

    self.r = realpart 

    self.i = imagpart

x = Complex(3.0, -4.5)

print(x.r, x.i) # 输出结果:3.0 -4.5

方法中的参数self表示类的实例,哪个对象调用该方法,self就代表这个对象的引用 

类的私有属性:

两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。self.__name

类的私有方法:

两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__test()

还有get和set方法

set_赋值——(可以写其他,最好写固定,大家都认识)
                    定义set_方法(参数,必须有)
                          self__属性变成私有属性
               get_取值   
                     定义get_方法(默认self属性)
                           return  self 加私有属性取值
        用对象加set_方法名传参(添加参数赋值,赋值必须有参数)
        用对象加get_方法名取值  输出取值(没有参数)

自动销毁方法:
      __del__ () :

          当对象没有引用的时候,或程序结束的时候,程序自动调用__del__方法销毁,也可以手动调用

类方法  :
      classmethod   类的成员——类属性,类方法 (cls)
        定义类成员 
        @classmethod
        def xxxx(cls):  ————类属性
        类属性前要加cls.——和对象self 用法一样
        类名可以调用类方法  ——类名.方法名()
        类名不可以直接调用对象方法()必须创建一个对象来调用对象方法
        定义类时会定义一个类空间,包括所有类成员:调用多次类方法也使用同一个空间
  对象方法:
        对象可以直接调用类方法,多个对象调用相同的类方法也使用同一个类空间
        创建对象时会默认创建一个空间,每一个对象都有自己的空间,包含所有对象成员 ,不同对象的属性输出在各自的空间
        对象成员——对象属性,对象方法(self)
  静态方法: 
        @staticmethod 
          def xxx():   (没有参数)
         不属于类方法 也不属于对象方法,(跟类和对象无关的时候可以用静态方法)
          静态方法中不可以使用类方法属性cls.,也不可以使用对象方法属性self.
          但是可以用类调用静态方法,也可以用对象调用静态方法  
    构造方法:
          __new__:
         def __new__(cls,*关键字参数**动态参数,)默认类方法 ,参数必须和初始值参数一致 
              ( __new__创建对象空间,__init__生成对象的初始值——先输出__new__创建空间,在输出__init__给对象赋值)
          用来创建对象 ,默认在生成对象之前调用,必须有返回值return
           return object.__new__(cls)  ---(固定格式返回属性参数)
   单例模式:
         类里只能生成一个对象,创建多个对象会用同一个地址


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值