๋ฐฐ๊ฒฝ
## image_data : FastAPI file: UploadFile
extention = image_data.filenamesplit('.',1)[-1].lower()
if extention is "pdf":
image_data = pdf2png(image_data)
extention = "png"
์์ extention ์ด pdf ์์๋ ๋ถ๊ตฌํ๊ณ if ๋ฅผ ๊ฑด๋๋ฐ๋ ๊ฒ์ ์๊ฒ๋์๋๋ฐ, == ๋ก ๊ณ ์น๋ ์กฐ๊ฑด๋ฌธ์ด ์คํ๋๋ ๊ฒ์ ๋ณด์ is ์ == ๊ฐ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์ ๋ฆฌํฉ๋๋ค.
2. is ์ == ์ ์ฐจ์ด
Python์์ ๋ ์ฐ์ฐ์๋ ๊ฒ๋ณด๊ธฐ์๋ ๋น์ทํด ๋ณด์ด์ง๋ง ์์ ํ ๋ค๋ฅธ ๋น๊ต ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
| ์ฐ์ฐ์ | ์๋ฏธ |
|---|---|
== |
๊ฐ(value)์ด ๊ฐ์์ง ๋น๊ต |
is |
๊ฐ์ฒด(identity)๊ฐ ๊ฐ์์ง ๋น๊ต |
์ฆ,
==: ๋ด์ฉ์ด ๊ฐ์์งis: ๊ฐ์ ๊ฐ์ฒด์ธ์ง
๋ฅผ ๋น๊ตํฉ๋๋ค.
3. == : ๊ฐ ๋น๊ต (Equality)
==๋ ๋ ๊ฐ์ฒด์ ๊ฐ์ด ๋์ผํ์ง ํ์ธํฉ๋๋ค.
a = "pdf"
b = "pdf"
print(a == b)
๊ฒฐ๊ณผ
True๋ฌธ์์ด์ ๋ด์ฉ์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ํญ์ True๊ฐ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์์ด ๋น๊ต๋ ์ผ๋ฐ์ ์ผ๋ก ==๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
4. is : ๊ฐ์ฒด ๋์ผ์ฑ ๋น๊ต (Identity)
is๋ ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ฒด์ธ์ง๋ฅผ ๋น๊ตํฉ๋๋ค.
a = "pdf"
b = "pdf"
print(a is b)
์ด ๊ฒฐ๊ณผ๋ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์ฌ ์ ์์ต๋๋ค.
True๋๋
False์ด์ ๋ Python์ string interning ์ต์ ํ ๋๋ฌธ์ ๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ๋์ผํ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ๊ฐ์ ๊ฐ์ฒด๋ก ์ฌ์ฌ์ฉํ๊ณ , ์ด๋ค ๊ฒฝ์ฐ์๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
์ฆ is๋ ๊ฐ์ด ๊ฐ์๋ False๊ฐ ๋ ์ ์์ต๋๋ค.
5. ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ด์
๋ฌธ์ ์ ์ฝ๋์์ extention์ ๋ค์ ์ฝ๋๋ก ์์ฑ๋ฉ๋๋ค.
extention = image_data.filename.split('.', 1)[-1].lower()
์ด ๊ณผ์ ์์ "pdf"๋ผ๋ ๋ฌธ์์ด์ด ์๋ก์ด ๊ฐ์ฒด๋ก ์์ฑ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ๋๋ค.
"pdf" (๋ฌธ์์ด ๋ฆฌํฐ๋ด)
"pdf" (split ๊ฒฐ๊ณผ)์ด ๋ ๋ฌธ์์ด์ ๊ฐ์ ๊ฐ์ง๋ง ๊ฐ์ฒด๋ ์๋ก ๋ค๋ฆ ๋๋ค.
๋ฐ๋ผ์
extention is "pdf"
๋ False๊ฐ ๋ฉ๋๋ค.
ํ์ง๋ง
extention == "pdf"
๋ ๊ฐ ๋น๊ต์ด๊ธฐ ๋๋ฌธ์ True๊ฐ ๋ฉ๋๋ค.
6. ์ฌ๋ฐ๋ฅธ ์ฝ๋
๋ฐ๋ผ์ ๋ฌธ์์ด ๋น๊ต๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฆ ๋๋ค.
extention = image_data.filename.split('.', 1)[-1].lower()
if extention == "pdf":
image_data = pdf2png(image_data)
extention = "png"
7. is ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
is๋ ์ฃผ๋ก Singleton ๊ฐ์ฒด ๋น๊ต์์ ์ฌ์ฉํฉ๋๋ค.
๋ํ์ ์ธ ์๋ None์
๋๋ค.
if data is None:
...
PEP8์์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ถ์ฅํฉ๋๋ค.
None๋น๊ต์๋is๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ ๋น๊ต์๋==๋ฅผ ์ฌ์ฉํฉ๋๋ค.
8. ์ ๋ฆฌ
Python์์ is์ ==๋ ๋ค์๊ณผ ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
| ์ฐ์ฐ์ | ๋น๊ต ๋์ | ์ฌ์ฉ ์ |
|---|---|---|
== |
๊ฐ ๋น๊ต | ๋ฌธ์์ด, ์ซ์ ๋น๊ต |
is |
๊ฐ์ฒด ๋์ผ์ฑ ๋น๊ต | None ๋น๊ต |
๋ฐ๋ผ์ ๋ฌธ์์ด ๋น๊ต์์๋ ==๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์
๋๋ค.
์ด๋ฒ ๊ฒฝํ์ ํตํด Python์์ ๊ฐ์ฒด ๋์ผ์ฑ๊ณผ ๊ฐ ๋น๊ต์ ์ฐจ์ด๋ฅผ ๋ค์ ํ๋ฒ ์ดํดํ ์ ์์์ต๋๋ค.