반응형

출처 : https://stackoverflow.com/questions/843277/how-do-i-check-if-a-variable-exists

어떻게 변수가 존재하는 지 체크하나요?

저는 변수가 존재하는 지 체크하기를 원합니다. 이제 저는 다음처럼 뭔가 하였습니다.

try:
   myVar
except NameError:
   # 뭔가 하기

예외처리 없이 다른 방법이 있을까요?


14개의 답변 중 1개

지역 변수의 존재를 체크하려면

if 'myVar' in locals():
  # myVar 있음

전역 변수의 존재를 체크하려면

if 'myVar' in globals():
  # myVar 있음

객체에 속성이 있는지 체크하려면

if hasattr(obj, 'attr_name'):
  # 객체.속성이름(obj.attr_name) 있음
반응형
반응형

출처

https://stackoverflow.com/questions/40852784/how-can-i-use-a-variable-in-curl-call-within-bash-script

bash 스크립트에서 curl 호출시 변수를 어떻게 사용할 수 있을까요?

간단한 작업이 있고 제 bash 스크립트 안에 curl 호출시 변수를 어떻게 사용할 수 있을지 알아내기 위해 이미 여러 시간을 소비하였습니다.

message="Hello there"
curl -X POST -H 'Content-type: application/json' --data '{"text": "${message}"}'

이는 문법적으로 작은 따옴표 안에 있기 때문에 ${message}을 출력합니다. 만약 따옴표를 바깥쪽은 큰 따옴표 안쪽은 작은 따옴표로 변경하였을 때 Hello와 there 명령어가 없다고(command not found: Hello 다음에 command not found: there) 나옵니다.

어떻게 해야 합니까?


2개 답변 중 1개만 추림

변수는 작음 따옴표 안에서 확장될 수 없습니다. 큰 따옴표로 다음처럼 다시 작성할 수 있습니다.

curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"${message}\"}"

큰 따옴표 안에 큰 따옴표는 escape 문자(\)가 있어야 합니다.

다른 방법은 다음처럼 할 수 있습니다.

curl -X POST -H 'Content-type: application/json' --data '{"text": "'"${message}"'"}'

이것은 작은 따옴표에서 밖에서 단어 분할을 방지하기 위해 ${message} 를 큰 따옴표로 묶은 다음 다른 작은 따옴표 문자열로 끝납니다. 다음처럼 처리 됩니다.

... '{"text": "'"${message}"'"}'
    ^^^^^^^^^^^^
    작은 따옴표 문자열


... '{"text": "'"${message}"'"}'
                ^^^^^^^^^^^^
                큰 따옴표 문자열


... '{"text": "'"${message}"'"}'
                            ^^^^
                            작은 따옴표 문자열
반응형
반응형

tf.placeholder와 tf.Variable의 차이점은 무엇입니까?

저는 텐서플로우 뉴비입니다. 저는 tf.placeholdertf.Variable의 차이점이 해깔립니다. 제 관점에서 tf.placeholder는 입력 데이터를 위해 사용되고 tf.Variable은 데이터의 상태를 저장하는 데 사용됩니다. 이것이 제가 알고 있는 것의 전부입니다.

이 둘의 차이점을 더 자세하게 설명해 주실 분이 있으신가요? 특별히 언제 tf.placeholder를 사용하고 또한 언제 tf.Variable을 사용하나요?


14개의 답변 중 1 개의 답변만 추려냄.

간단히, 당신의 모델에서 가중치(W, weights)와 편향(B, Bias) 처럼 학습 가능한 변수를 위해 tf.Variable를 사용합니다.

weights = tf.Variable(
    tf.truncated_normal([IMAGE_PIXELS, hidden1_units],
                    stddev=1.0 / math.sqrt(float(IMAGE_PIXELS))), name='weights')

biases = tf.Variable(tf.zeros([hidden1_units]), name='biases')

tf.placeholder는 실제 학습 예시를 공급(feed)하는 데 사용됩니다.

images_placeholder = tf.placeholder(tf.float32, shape=(batch_size, IMAGE_PIXELS))
labels_placeholder = tf.placeholder(tf.int32, shape=(batch_size))

다음은 학습되는 동안 학습 예시를 공급(feed)하는 방법입니다.

for step in xrange(FLAGS.max_steps):
    feed_dict = {
       images_placeholder: images_feed,
       labels_placeholder: labels_feed,
     }
    _, loss_value = sess.run([train_op, loss], feed_dict=feed_dict)

당신의 tf.variables는 이 학습의 결과로서 (수정되고) 학습될 것입니다.

더 자세한 내용은 https://www.tensorflow.org/versions/r0.7/tutorials/mnist/tf/index.html에서 확인하세요. (예시는 웹 페이지에서 가져왔습니다.)

반응형

+ Recent posts