欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python语法(类的定义和调用)

程序员文章站 2022-06-12 11:58:40
从零开始学Python Day05~面向对象本文是上一篇文章的后续,详情点击该链接类的定义和调用class student: #构造方法 def __init__(self,name,score): self.name = name self.score = score def data(self): print("姓名: ",self.name," 年龄: ",self.score)s = student('刘伯温',19)...

Python从零开始学 Day05~面向对象

本文是上一篇文章的后续,详情点击该链接

类的定义和调用

class student:
    #构造方法
    def __init__(self,name,score):
        self.name = name
        self.score = score
    def data(self):
        print("姓名: ",self.name," 年龄: ",self.score)

s = student('刘伯温',19)

s.data()

Python语法(类的定义和调用)

        self好比C++,Java里面的this

其他操作:

        dir(obj)可以获得对象的所有属性、方法

        obj.__dict__ 对象的属性字典

        pass 空语句

        isinstance(对象,类型) 判断“对象”是不是“指定类型”

静态方法

        “静态方法”和在模块中定义普通函数没有区别,只不过“静态方法”放到了“类的名字空间里面”,需要通过“类调用”。

@staticmethod

class student:
    #构造方法
    def __init__(self,name,score):
        self.name = name
        self.score = score

    def data(self):
        print("姓名: ",self.name," 年龄: ",self.score)

    @staticmethod
    def show():
        print("hello 我是静态方法")

s = student('刘伯温',19)
s.data()

student.show()

Python语法(类的定义和调用)

析构函数

        和C++里面的析构函数差不多

class student:
    def __init__(self):
        print("我是构造函数~")

    def __del__(self):
        print("我是析构函数~")

print("程序运行中")
s = student()
i = input("随便输入")

Python语法(类的定义和调用)
Python语法(类的定义和调用)

__call__方法和可调用对象(计算工资案例)

class SalaryAccount:
    def __call__(self, salary):
        yearSalary = salary * 12
        daySalary = salary // 30
        hourSalary = daySalary // 8
        return dict(monthSalary=salary,yearSalary=yearSalary,daySalary=daySalary ,hourSalary=hourSalary)
s = SalaryAccount()
print(s(3000))

Python语法(类的定义和调用)

方法的动态性

class User:
    def fun(self):
        print("我要去运动")

def funS():
    print("我要吃大餐")
User.fun = funS()
u = User()
u.fun

Python语法(类的定义和调用)

方法的私有公有性

        通常我们约定,两个下划线开头的属性是私有的(private)。其他为公有的(public)。

class Student:
    def show(self): #公有方法
        print("我是公有方法")

    def __li(self): #私有方法
        print("我是私有方法")
S = Student()
S.show()

@property装饰器

@property 可以将一个方法的调用方式发成“属性调用”

class Student:
    @property
    def number(self):
        return 6666
s = Student()
print(s.number)

Get,Set方法

class Student:
    def __init__(self,score):
        self.score = score
    def __init__(self):
        pass

    @property
    def score(self):        #如同get
        return self.score

    def score(self,score):  #如同set
        self.score = score

s = Student()
s.score(7)
print(s.score)

继承

class Animal:
    def ani(self):
        print("这是个动物")
class Cat(Animal):
    def ca(self):
        print("我是个猫咪")
C = Cat()
C.ani()

Python语法(类的定义和调用)

object根类

dir()查看对象属性

class Student:
    def __init__(self,score):
        self.score = score
    def show(self):
        print("学生成绩是: ",self.score)
obj = object()
print(dir(obj))

S = Student(19)
print(dir(S))

Python语法(类的定义和调用)

多重继承

class Cat:
    def catrun(self):
        print("小猫在跑")
class Dog:
    def dogrun(self):
        print("小狗在跑")
class Animal(Cat,Dog):
    def __init__(self):
        print("都是动物")
        super().catrun()#super获得类方法

A = Animal()
A.dogrun()
A.catrun()

Python语法(类的定义和调用)Python语法(类的定义和调用)

【图片来自网络】


Python语法(类的定义和调用)

【图片来自网络】


Python语法(类的定义和调用)

【图片来自网络】

本文地址:https://blog.csdn.net/qq_41424688/article/details/107091786