>  기사  >  백엔드 개발  >  Python3의 클래스 및 객체 이해(코드 예제)

Python3의 클래스 및 객체 이해(코드 예제)

不言
不言앞으로
2018-10-27 16:00:059961검색

이 글의 내용은 Python3의 클래스와 객체에 대한 이해에 대한 것입니다.(코드 예제) 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

클래스란 무엇인가요?
클래스란 일반적으로 유사한 다수의 개인이 모여 공통된 특성을 지닌 것들을 지칭하는 추상적인 개념입니다. 예를 들어, 클래스는 자동차
이고 이 자동차에는 다양한 모델이 포함되어 있습니다.
객체란 무엇입니까
클래스의 특정 항목입니다. 예를 들어, Wuling Shenche S(코너링 시 GTR을 몇 초 만에 죽인다는 농담이 아직도 기억에 생생합니다)는 자동차 클래스의 구현입니다.
먼저 클래스가 있고 그 다음에는 객체가 있습니다

클래스와 객체 이해하기

def eating():
    print("吃草")
    
def walking():
    print("走路")

eating()
walking()
#(输出)    吃饭
        走路
    
#这样的话,别人也可以调用你写的函数,但是调用eating() 并不能清除的了解到到底是谁 “吃饭”,
#所以我们输入一个name来明确是谁在吃草。

def eating(name):
    print(name,"吃饭")
eating("zhuozi")            #调用函数
#(输出)zhuozi 吃草

#그런데 zhuozi를 먹다 쓰는 것이 논리적으로 부적절하다는 걸 알게 되실 겁니다. 비록 문법적으로는 괜찮지만,
# 그래서 "먹는다"라는 범주를 하나의 범주, 즉 하나의 범주로 나누어 보겠습니다. , 그래서 우리는 표시됩니다, class Person:
#Python의 내장 함수 클래스와 구별하기 위해 대문자 P를 사용하는 이유 내장 클래스 이름은 모두 소문자입니다(ctrl + 왼쪽 마우스를 클릭할 수 있습니다). 내장 함수의 버튼을 눌러 확인하세요)

class Person:            #这样我们就将eating封装到了Person这个类里面
                        #只要是Person这一类别的都可以进行下面的行为(eating)
    def eating(name):
        print(name,"吃饭")
        
zhangsan = Person()        #这里就不能像以前一样用eating去调用了,因为只有Person这一类的才能就行eating这个行为
                        #所以我们就要先将zhansan定义为Person这一类    
zhangsan.eating()        #然后才能让张三进行吃草这种行为
#(输出)<__main__.Person object at 0x000001D2CCC21160> 吃饭

lisi = Person()            #lisi也要吃饭,那继续定义lisi 是person 类 他可以吃饭
lisi.eating()            #lisi就可以吃饭了
#(输出)<__main__.Person object at 0x000001BCC6BF1198> 吃饭

#打印的一个地址,一个类的地址 object(翻译就是对象)就表示 lisi是这个类的对象
#lisi 就是 Person这个类 实例化的对象。

We def before eating(name): 이름은 누가 식사하고 있는지 알 수 있으며 여기서 문법의 엄격한 요구 사항은 self를 사용하여 식사를 부르고 있는 사람을 나타내는 것입니다. 그래서 다음과 같습니다:

class Person:
    def eating(self):
        print(self,"吃饭")
class Person:
    pass
========
list  这里我们ctrl + 鼠标左键点击pycharm 里面书写的list,如图:

Python3의 클래스 및 객체 이해(코드 예제)
내장 함수의 클래스 이름은 모두 소문자이며 이전에 사용한 클래스(목록 이름).append()는 클래스 아래에 있는 함수의 호출임을 알 수 있습니다. 우리는 지금 대괄호에 대해 이야기하고 있습니다. 내부에는 개체 이름 self가 있고 목록 이름은 인스턴스화된 개체입니다.

Syntax

class 类名(父类列表):        #类名和变量名称的命名是一样的,类名首字母要大写,
                            #用来区别是否是内置函数自带的类
    类体
    
数据属性                        #类的共同属性,名字,性别,干什么的,等等

方法属性                        #这个类共同都有的功能,跑,跳,计算,记录等等
class Person:
    pass

zhangsan = Person()                #张三是Person实例化的对象,所以要开辟一个内存来存储,
                                #即将zhangsan变量名指向这个内存地址
print(zhangsan)
#(输出)<__main__.Person object at 0x00000194D8D28400>

既然实例化对象后开辟了内存,我们就要在里面进行一个存储
class Person:
    pass

zhangsan = Person()
zhangsan.name = "zhangsan"                #给这个实例化的对象附一个名字
print(zhangsan)
#(输出)<__main__.Person object at 0x0000018DF6598400>

print(zhangsan.name)                    #打印出这个对象的名字
#(输出)zhangsan

zhangsan对象名 指向  内存,内存里面有一个属性name,而name指向zhangsan这个名字  两个zhngsan 不一样啊
zhangsan(类的对象名字)  -- 》内存 (name)----》zhangsan(对象的属性)

lisi = Person()                    #再实例化一个对象
lisi.name = "xiaolong"
print(lisi.name)    
print(id(lisi.name))            
lisi = Person()
lisi.name = "xiaolong"

print(id(zhangsan))
#(输出)2070146453856
print(lisi.name)
#(输出)xiaolong
print(id(lisi.name))
#(输出)2070146521264
인스턴스화된 두 객체의 ID가 다르다는 것을 알 수 있습니다

여기 네임스페이스 규칙이 있습니다.
객체가 인스턴스화될 때마다 특별한 처리가 수행되지 않으면 시스템을 차지하게 됩니다. 메모리 저장.

class Person:
    pass

zhangsan = Person()                    
zhangsan.name = "zhangsan"
zhangsan.sex = "男"
zhangsan.age = 19
zhangsan.hight = 175

lisi = Person()
lisi .name = "xiaolong"
lisi .sex = "女"
lisi .age = 29
lisi .hight = 170
#两个内容的创建方式相同啊,只是内容不同,那么我们写一个函数来进行这种重复性的操作,
class Person:
    def __init__(self, name, sex, age, hight):
        self.name = name        zhangsan.name = name
        self.sex = sex            zhangsan.name = sex
        self.age = age            zhangsan.name = age
        self.hight = hight        zhangsan.name = hight
#self 是为了规范明确是谁调用了,所以相当于将zhangsan这个对象传给了self。
#而后面self之后的name, sex, age, hight 就是所要传入的"zhangsan" "男"19 175 信息
#zhangsan = Person()                
#zhangsan.name = "zhangsan"
#zhangsan.sex = "男"
#zhangsan.age = 19
#zhangsan.hight = 175

这样我们就不用再像上面一样传入了
zhangsan = Person("zhangsan","男","19",175)
print(zhangsan.name)
#(输出)zhangsan

init: 시스템에 존재하는 특수 함수입니다(zhangsan = Person("zhangsan","male","19",175)). 기본 인스턴스화 개체는 이것을 호출합니다. 기능. def init(self, name, sex, age, hight):
self 개체 이름은 등호 앞의 zhangsan이고,
name, sex, age, hight는 "zhangsan", "male", "19"에 해당합니다. , 175

위 내용은 Python3의 클래스 및 객체 이해(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제